我多次使用同一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
我不确定这是否可以,但是可以。这段代码是好的还是我应该使用其他解决方案?
最佳答案
使用mp.pause()
方法而不是mp.release()
。您可以在此处查看媒体播放器的生命周期:http://developer.android.com/reference/android/media/MediaPlayer.html
如果要从暂停的位置继续,代码应如下所示:
MediaPlayer mp = MediaPlayer.create(this,R.raw.song);
mp.start(); //首次使用
mp.pause();
mp.start(); //第二次使用,更多用途相同
如果要播放同一首歌曲,但重新播放该歌曲:
MediaPlayer mp = MediaPlayer.create(this,R.raw.song);
mp.start(); //首次使用
mp.stop();
mp.prepare(); //第二次使用,更多用途相同
mp.start();