MediaPlayer使用不止一次 - Android

时间:2014-05-19 13:50:53

标签: java android android-mediaplayer

我多次使用同一个MediaPlayer时遇到问题。我已经尝试了mp.stop()但是当我想再次开始时我正在使用mp.start(),但它不想玩。我也尝试了mp.reset()mp.prepare(),而不是mp.start(),但它不想玩。所以我已经这样做了:

MediaPlayer mp = MediaPlayer.create(this, R.raw.song);
mp.start(); // using for the first time
mp.release(); 
// then again I'm creating
mp = MediaPlayer.create(this, R.raw.song);
mp.start(); // second using, the same for more uses

我不确定这是否合适,但它确实有效。这段代码是好还是我应该使用其他解决方案?

2 个答案:

答案 0 :(得分:1)

使用mp.pause()方法代替mp.release()。您可以在此处查看媒体播放器的生命周期:http://developer.android.com/reference/android/media/MediaPlayer.html

如果您希望从暂停的地方继续,您的代码应如下所示:

MediaPlayer mp = MediaPlayer.create(this, R.raw.song);
mp.start(); // using for the first time
mp.pause(); 

mp.start(); // second using, the same for more uses

如果您想播放同一首歌曲,但又要重新开始播放歌曲:

MediaPlayer mp = MediaPlayer.create(this, R.raw.song);
mp.start(); // using for the first time
mp.stop(); 

mp.prepare(); // second using, the same for more uses
mp.start();

答案 1 :(得分:1)

如果您想使用其他数据源,则正确的顺序如下:

mp.stop()
mp.reset(); 
mp.setDataSource(PATH); 
mp.prepare(); 
mp.start(); 

查看doc以获取有关这些来电的详细信息。