使用Mediaplayer重播同一个文件

wag*_*ohn 3 android

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

Ero*_*rol 11

按照此处的状态图.stop()停止比赛并让你处于停止状态.开始下一次玩之前,您应该调用prepare(),然后start()一次.

所以在按键1,你应该调用start()和按钮2,你应该叫stop()prepare().初始化很好,做一次并将其保持在按钮之外.

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