我希望你能提供一些指导。我创建了一个媒体播放器(mp1)的“最终”实例,然后在按钮上单击它播放一个mp3文件。然后,当我点击第二个按钮时,我需要停止文件。这工作正常,直到我再次尝试播放文件 - 没有任何反应。我认为因为mp1实例是'final',当我停止它时,它会停止,直到我重新启动应用程序。我不想暂停文件,我想停止它然后重新启动它。欢迎任何想法。我尝试将mp1创建放在按钮中。这有效直到应用程序崩溃 - 可能是因为多个媒体播放器创建使用了所有设备内存?
感谢!!!
// const mediaplayer
mp1 = MediaPlayer.create(getApplicationContext(), R.raw.mysound);
...
// in button 1
if (radSound1.isChecked()) {
radSound2.setChecked(false); // ...set radiobutton 2 to false
mp1.start(); // ...play the mp3 file
}
...
// in button 2
if (mp1 != null){
mp1.reset();
//mp1.setDataSource();
// mp1.prepare();
}
答案 0 :(得分:11)
按照状态图here。 stop()
停止播放并让您处于停止状态。在下次开始播放之前,您应该再次拨打prepare()
然后再拨打start()
。
因此,在按钮1中,您应该拨打start()
,在按钮2中,您应该拨打stop()
和prepare()
。初始化很好,只需执行一次并将其保留在按钮之外。
同时接受您的问题的答案,包括这样,以便像我这样的人将来更有动力回复他们。