如何通过单击暂停音频文件并开始一个新文件?

时间:2019-09-24 09:38:08

标签: java android android-mediaplayer

我正在尝试使用2个按钮播放2个音频文件,当按下另一个按钮时,应停止播放的音频并开始一个新的音频文件。  问题是,当应用程序启动时,只有第一个单击的按钮才能作为暂停并启动,而另一个按钮只是在暂停。

请注意I。我首先单击的任何按钮都可以,而其他按钮则不能。

注释二。我试图将<0>也设为<1>都没有解决问题。

注释III。我试图在不同的点击侦听器中格式化狗的代码  从点击的方式来看,bth无法解决问题。

另一方面,我的应用程序将包含约10个按钮,每次onclick时我都需要暂停9个并启动一个按钮,有没有办法用较小的代码将它们全部暂停? 谢谢

//Buttons    
  dog = Button.findViewById(R.id.dog)
  cat = Button.findViewById.(R.id.cat)
//MediaPlayers   
  final dogMP = MediaPlayer.Create(this, R.raw.park)
  final catMP = MediaPlayer.Create(this, R.raw.meaw)
//onClicks
 //dog
  dog.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            catMP.pause();
            catMP.seekTo(0);
            if (!dogMP.isPlaying()) {
                dogMP.setLooping(true);
                dogMP.start();

            } else {
                dogMP.pause();
                dogMP.seekTo(0);
            }

        }
    });
//cat
    cat.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (!catMP.isPlaying()) {
                dogMP.pause();
                dogMP.seekTo(0);
                catMP.setLooping(true);
                catMP.start();



            } else {
                catMP.pause();
                catMP.seekTo(0);
            }
        }
    });`

1 个答案:

答案 0 :(得分:0)

您可以通过检查下面给出的mediaplayer试试代码来对所有按钮执行此操作。

//dog
   dog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               if (mediaplayer != null){
            if (mediaplayer.isplaying()) {
                mediaplayer.stop();
                // start your new audio
                    dogMP.setLooping(true);
                    dogMP.start();
            } else {
                // start your new audio
                    dogMP.setLooping(true);
                    dogMP.start();
            }
            }
            }
        });