我希望你能提供一些指导。我创建了一个媒体播放器 (mp1) 的“最终”实例,并在单击按钮时播放 mp3 文件。然后我需要在单击第二个按钮时停止文件。在我尝试再次播放该文件之前,这一切正常——没有任何反应。我认为因为 mp1 实例是“最终的”,所以当我停止它时,它会永久停止,直到我重新启动该应用程序。我不想暂停文件,我想停止它然后重新启动它。欢迎任何想法。我尝试将 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();
}
最佳答案
按照状态图here . stop()
停止播放并将您置于停止状态。在下次开始播放之前,您应该调用 prepare()
然后再次调用 start()
。
所以在按钮 1 中,您应该调用 start()
,在按钮 2 中,您应该调用 stop()
和 prepare()
.初始化没问题,做一次,放在按钮外面。
也接受你的问题的答案,包括这个,这样像我这样的人将来会更有动力回复他们。
关于android - 使用 Mediaplayer 重播同一文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11533728/