2010-03-12 166 views

回答

2

如果您实例化MediaPlayer的多个实例,则会发生上述情况。

你应该阅读有关the lifecycle of the media player and its different states

  • 定义一个媒体播放器,在类变量的作用域例如
  • 实例化它在onCreate方法,并在的onResume方法所需
  • 在功能的发挥您的音频使用.reset方法让媒体播放器进入并处于空闲状态
  • 使用.setDataSource或等价物将其设置为初始化状态
  • 然后为。准备就绪状态的
  • 然后。开始播放音频
  • .stop()等,以阻止它
  • 当你完成使用.release函数释放音频资源。

媒体播放器被定义为一类范围变量和在OnCreate实例化()方法

private void startPlayingAudio() 
{ 
    try { 

     Uri path1 = Uri.parse("android.resource://com.yourpackagehere./" + R.raw.beep);   
     mp.reset(); // reset to idle state 
     mp.setDataSource(this, path1); // from idle to initialised state 

     mp.prepare(); 

     mp.start();   
    } catch (Exception ioe) { 
     Log.e(LOG_TAG, "Error playing the beep sound"); 
    } 
} 
相关问题