Возобновить возобновление воспроизведения фоновой музыки не работает - PullRequest
0 голосов
/ 27 апреля 2018

это мое первое приложение, поэтому этот вопрос / ответ может быть довольно простым. У меня в настоящее время есть onPause (); , чтобы остановить воспроизведение музыки, когда игрок покидает экран. Я пытался сделать то же самое, но с помощью onResume, чтобы музыка воспроизводилась снова (backgroundMusic). К сожалению, это не работает. Он снова работает, когда я нажимаю кнопку сброса или возвращаюсь на домашнюю страницу и возвращаюсь на страницу игры. Но он просто не загружается, как только приложение возвращается на экран, как мне бы хотелось.

Моя выдержка из кода следует

package com.example.android.buttongame;

...

открытый класс MainActivity расширяет AppCompatActivity {

...

MediaPlayer winningSound;
MediaPlayer buttonSound;
MediaPlayer backgroundMusic;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    /*
    Plays ticking background noise at the start of this activity. Set on a loop
     */

backgroundMusic = MediaPlayer.create(this, R.raw.ticking_background);

    backgroundMusic.start();
    backgroundMusic.setOnErrorListener(new android.media.MediaPlayer.OnErrorListener() {

        public boolean onError(MediaPlayer mediaplayer, int i, int j)
        {
            return false;
        }
    });
    backgroundMusic.setLooping(true);


}

@Override
public void onResume(){
    super.onResume();
    backgroundMusic.start();
}

public void onPause() {
    super.onPause();
    backgroundMusic.stop();
}



...

public void reset(View v) {

     /*
        Plays button sound
         */
    buttonSound = MediaPlayer.create(MainActivity.this, R.raw.button_sound);
    buttonSound.start();

    /*
     * Refreshes activity
     */

   this.recreate();

}

... public void homePage (Просмотр представления) {

     /*
        Stops background music
         */

    backgroundMusic.stop();

     /*
        Plays button sound
         */
    buttonSound = MediaPlayer.create(MainActivity.this, R.raw.button_sound);
    buttonSound.start();

    /*
    Leads to home page
     */
    Intent homePage = new Intent(this, HomePage.class);
    startActivity(homePage);
}

}

1 Ответ

0 голосов
/ 27 апреля 2018

Вместо backgroundMusic.stop() следует использовать backgroundMusic.pause(), тогда вы добьетесь того, что ищете.

Вызов stop() останавливает воспроизведение и вызывает MediaPlayer в Запущено , Приостановлено , Подготовлено или Воспроизведение Завершено в войдите в состояние Остановлено . Находясь в состоянии Остановлено , воспроизведение не может быть начато до тех пор, пока не будут вызваны prepare() или prepareAsync(), чтобы снова установить объект MediaPlayer в состояние Подготовлено . Вызов stop() не влияет на объект MediaPlayer, который уже находится в состоянии Stopped .

Вот документация MediaPlayer, которая поможет вам понять его API s. https://developer.android.com/reference/android/media/MediaPlayer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...