2010-03-12 145 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"); 
    } 
} 
相關問題