Android 使用Mediaplayer重播同一文件

Android 使用Mediaplayer重播同一文件,android,Android,我希望你能提供一些指导。我创建了一个mediaplayer(mp1)的“最终”实例,然后单击一个按钮,它就会播放一个mp3文件。然后,我需要在单击第二个按钮时停止该文件。在我再次尝试播放该文件之前,这一切都很正常-什么都没有发生。我认为,因为mp1实例是“最终的”,当我停止它时,它将永远停止,直到我重新启动应用程序。我不想暂停文件,我想停止它,然后重新启动它。欢迎任何意见。我试着将mp1创建放在按钮中。这一直有效,直到应用程序崩溃——可能是因为多个mediaplayer创建使用了所有设备内存 谢

我希望你能提供一些指导。我创建了一个mediaplayer(mp1)的“最终”实例,然后单击一个按钮,它就会播放一个mp3文件。然后,我需要在单击第二个按钮时停止该文件。在我再次尝试播放该文件之前,这一切都很正常-什么都没有发生。我认为,因为mp1实例是“最终的”,当我停止它时,它将永远停止,直到我重新启动应用程序。我不想暂停文件,我想停止它,然后重新启动它。欢迎任何意见。我试着将mp1创建放在按钮中。这一直有效,直到应用程序崩溃——可能是因为多个mediaplayer创建使用了所有设备内存

谢谢

// 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(); 
              }
遵循状态图<代码>停止()停止播放并将您置于停止状态。在开始下一次播放之前,您应该调用
prepare()
,然后再次调用
start()

因此,在按钮1中,您应该调用
start()
,在按钮2中,您应该调用
stop()
prepare()
。初始化很好,只需执行一次,并将其保留在按钮之外


同时接受您的问题的答案,包括以下内容,以便像我这样的人将来更有动力回答他们。

谢谢!我会试一试,然后再报告。我“想”我接受了你的回答-谢谢你的提示。我试着在播放一次后再播放一次。根据Eclipse的说法,
.prepare()
需要一个try/catch语句?