Android: Как приостановить звук при воспроизведении другого звука? - PullRequest
0 голосов
/ 05 ноября 2018

У меня 2 кнопки аудио, одна для звуковых эффектов, а другая для произношения звука. Я хотел бы сделать паузу в произношении звука при воспроизведении звукового эффекта и наоборот. Но похоже, что это не работает.

 imgfx.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            try {
                effectsPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                effectsPlayer.setDataSource(getFilesDir()+"/effects/"+fxname);
                effectsPlayer.prepare();
                effectsPlayer.start();

                if(effectsPlayer.isPlaying()){
                    audioplayer.pause();
                    audioplayer.release();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });

    audio.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            try {

                audioplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                audioplayer.setDataSource(getFilesDir()+"/audio/"+audname);
                audioplayer.prepare();
                audioplayer.start();

                if(audioplayer.isPlaying()){
                    effectsPlayer.pause();
                    effectsPlayer.release();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });
}

@Override
public void onBackPressed(){
    if(effectsPlayer != null){
        effectsPlayer.stop();
    }
}

Я не уверен с моим кодом, потому что он не работал. Пожалуйста, помогите мне. Я был бы очень рад услышать ваши предложения или комментарии по этому поводу, которые могут помочь мне с моим проектом. Большое вам спасибо :)

1 Ответ

0 голосов
/ 05 ноября 2018

Измените ваше состояние, как показано ниже: -

 if(audioplayer.isPlaying()){
                audioplayer.pause();
                audioplayer.release();
            }


            if(effectsPlayer.isPlaying()){
                effectsPlayer.pause();
                effectsPlayer.release();
            }
...