android - 如何一次播放一种声音?

标签 android eclipse audio media imagebutton

当我在显示屏上单击imgniatp时,音频播放效果很好,但是如果我也单击imgbukap,则在imgniatp的音频播放完成之前,imgbukap也会播放音频。这样两个音频一起播放。如何一次播放一种声音?

package sodik.com.ramadhan;

import sodik.com.ramadhan.R;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.Toast;
import android.widget.TextView;


public class Puasa3Activity extends Activity implements OnClickListener{
MediaPlayer mp;
ImageButton imgniatp1, imgbukap2;

String p1, p2, p3, p4, p5, p6, p7, p8, p9;


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.puasa3);

    TextView p1tk = (TextView) findViewById(R.id.p1tk);
    TextView p2tk = (TextView) findViewById(R.id.p2tk);

    imgniatp1=(ImageButton) findViewById(R.id.imgniatp);
    imgniatp1.setOnClickListener(this);
    imgbukap2=(ImageButton) findViewById(R.id.imgbukap);
    imgbukap2.setOnClickListener(this);
}
    public void onClick(View v){
        switch (v.getId()){
        case R.id.imgniatp:
            mp= MediaPlayer.create(this, R.raw.bukapuasa);
            mp.setVolume(1,1);
            mp.start();
            Toast.makeText(this, " Memainkan Buka Puasa", Toast.LENGTH_SHORT).show();
        break;
        case R.id.imgbukap:
            mp = MediaPlayer.create(this, R.raw.niatpuasa);
            mp.setVolume(1,1);
            mp.start();
            Toast.makeText(this, " Mainkan Niat Puasa ", Toast.LENGTH_SHORT).show();
        break;
        }


            }

`

最佳答案

您可以检查MediaPlayer是否已经在播放某些内容,如果是,则以onCompletionListener开始剪辑。

if(mp != null && mp.isPlaying()) {
    mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mp = MediaPlayer.create(this,R.raw.bukapuasa);
            mp.start();
        }
    });
} else {
    mp = MediaPlayer.create(this,R.raw.bukapuasa);
    mp.start();
}

关于android - 如何一次播放一种声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32461673/

相关文章:

java - Eclipse 出现问题,无法导入 org.apache.maven.surefire.report.RunListener;

java - 如何通过我的应用程序在 soundcloud 中上传音频,我想将该 id 也发送到我的服务器

android - 使用 shouldInterceptRequest() 时音频无法在 Android WebView 中工作

android - android中的唤醒锁类型?

java - 在 React Native 的桥接 Java 方法中使用 Logback

Android从另一个 fragment 获取编辑文本值的最简单方法

mysql - 如何消除 BIRT 中的网络错误(TCP_ERROR)?

android - 如何在 Google+ 中包含类似 "Send Feedback" Activity 的屏幕截图

eclipse - 在 Ubuntu 中连接 LAPACKE 和 Eclipse

Javascript自动播放声音文件,单击其中一个按钮时停止