首页 > 解决方案 > 如何通过单击暂停音频文件并开始一个新文件?

问题描述

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

注意 I. 我首先单击的任何按钮都可以使用,而另一个则不会。

注二。我试图寻求 <0> 也到 <1> 都没有解决问题。

注三。我尝试以与 cat on click 不同的方式格式化 dog on click listener 的代码,bth 并没有解决问题。

另一方面,我的应用程序将包含 10 个按钮,每次点击我需要暂停 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);
            }
        }
    });`

标签: javaandroidandroid-mediaplayer

解决方案


您可以通过检查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();
            }
            }
            }
        });

推荐阅读