我多次使用同一个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
我不确定这是否合适,但它确实有效。这段代码是好还是我应该使用其他解决方案?
答案 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以获取有关这些来电的详细信息。