если mediaplayer.pasue () вызывается до mediaplayer.start (), то musi c не воспроизводится - PullRequest
0 голосов
/ 11 марта 2020

Я создал два метода onClick для кнопок «Воспроизвести» и «Пауза», но если сначала нажать «Пауза», а затем кнопку «Воспроизвести», музыка c не воспроизводится. ниже код

package com.example.myaudio;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;


public class MainActivity extends AppCompatActivity {

    MediaPlayer mediaPlayer;

    public void playAudio(View view)
    {
        mediaPlayer.start();
    }
    public void pauseAudio(View view)
    {

        if(mediaPlayer.isPlaying()){
           mediaPlayer.pause();
        }

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mediaPlayer = MediaPlayer.create(this,R.raw.mymusic);

    }
}

1 Ответ

0 голосов
/ 11 марта 2020

Как гласит документация MediaPlayer , единственными состояниями, в которых можно вызвать pause, являются Запущено , Приостановлено и PlaybackCompleted .

Вызов pause в каком-либо другом состоянии переводит экземпляр MediaPlayer в состояние Ошибка и пытается start MediaPlayer, когда он находится в состоянии Ошибка не будет работать.

Итог: не вызывайте методы на MediaPlayer, если только игрок не находится в состоянии, в котором можно вызывать этот метод (как описано в документации).

...