Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按钮和声音?_Android_Button_Audio - Fatal编程技术网

Android 按钮和声音?

Android 按钮和声音?,android,button,audio,Android,Button,Audio,我试着制作mediaplayer,我的问题是当你点击下一个声音按钮时如何设置声音停止。现在,如果我点击声音按钮,它会工作,但如果我点击一个新的声音,它也会工作,但第一个不会停止 这是我的密码: public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save

我试着制作mediaplayer,我的问题是当你点击下一个声音按钮时如何设置声音停止。现在,如果我点击声音按钮,它会工作,但如果我点击一个新的声音,它也会工作,但第一个不会停止

这是我的密码:

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void onClick(View v){}
    public void btn1 (View v){
    MediaPlayer mp = MediaPlayer.create(this, R.raw.est1);
    mp.start();
    }
    public void btn2 (View v){
    MediaPlayer mp = MediaPlayer.create(this, R.raw.ast2);
    mp.start();
    }
    public void btn3 (View v){
    MediaPlayer mp = MediaPlayer.create(this, R.raw.dst3);
    mp.start();
    }
    public void btn4 (View v){
    MediaPlayer mp = MediaPlayer.create(this, R.raw.gstd4);
    mp.start();
    }
    public void btn5 (View v){
    MediaPlayer mp = MediaPlayer.create(this, R.raw.bstd5);
    mp.start();
    }
    public void btn6 (View v){
    MediaPlayer mp = MediaPlayer.create(this, R.raw.estd6);
    mp.start();


    }
}

问题是你有6个不同的媒体播放器。 您必须暂停所有媒体播放器,然后启动当前媒体播放器。

您是否尝试过mp.stop()

这将停止第一个声音

 public void btn5 (View v){
    mp.stop();
    MediaPlayer mp = MediaPlayer.create(this, R.raw.bstd5);
    mp.start();
    }
就像这里:

我建议您只使用一个可以重置和重用的MediaPlayer

public class MainActivity extends ActionBarActivity {

    private MediaPlayer mp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mp = new MediaPlayer();
    }

    public void btn1 (View v){
        mp.release();
        mp = MediaPlayer.create(this, R.raw.est1);
        mp.start();
    }
    public void btn2 (View v){
        mp.release();
        mp = MediaPlayer.create(this, R.raw.est1);
        mp.start();
    }

    @Override
    public void onDestroy() {
       mp.release();
    }

}