4

我希望你能提供一些指导。我创建了一个媒体播放器 (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(); 
              }
4

1 回答 1

12

按照这里的状态图。stop()停止播放并使您处于停止状态。在开始下一次游戏之前,您应该先跟注prepare(),然后start()再跟注。

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

也接受你的问题的答案,包括这个,这样像我这样的人将来会更有动力回复他们。

于 2012-07-18T03:50:07.460 回答