Как приостановить аудиофайл и запустить новый одним щелчком мыши? - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь воспроизвести 2 аудиофайла с помощью 2 кнопок, при нажатии другой кнопки следует остановить воспроизведение звука и начать новый.проблема в том, что при запуске приложения только первая нажатая кнопка будет работать как пауза и запуск, а другая просто пауза.

Примечание I. Любая кнопка, которую я нажимаю первой, будет работать, тогда как другая не будет.

Примечание II.Я пытался найти <0> также, чтобы <1> оба не решили проблему.

Примечание III.Я пытался отформатировать код для собаки на прослушивателе кликов иначе, чем на кошке на щелчке, 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);
            }
        }
    });`

1 Ответ

0 голосов
/ 24 сентября 2019

вы можете сделать это для всех ваших кнопок, проверив 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();
            }
            }
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...