Android Media Player Restart Audio After Calling S

2019-02-21 11:16发布

问题:

I'm able to stream audio and stop it without any problem, but when I try to start it again after stop, it doesn't start and I get an IllegalState exception.

Here is what I'm doing:

Start Playing

mediaPlayer.setDataSource(PATH);
mediaPlayer.prepare();
mediaPlayer.start();

Stop Playing

mediaPlayer.stop

Now, if I want to start playing again the same media, what will I have to do?

*PATH is the URL of a continuous running radio station.

回答1:

Add this:

mp.reset();
mp.setDataSource(MEDIA_PATH);
mp.prepare();
mp.start();


回答2:

In case you don't have access to the data source in the current scope, you can do:

mp.pause();
mp.seekTo(0);

Then when you do

mp.start();

play will start from the beginning again.

I needed this because I had a button that toggled playing. I had a togglePlayer method in which the datasource was out of scope.



回答3:

you can check the state diagram of mediaplayer http://developer.android.com/reference/android/media/MediaPlayer.html after the mediaplayer stopped, must call prepare, when prepared,and then you can call start method.