2013-11-10 46 views
0

我在res/raw文件夾中有多個音頻文件,音頻名稱保存在數據庫中。因此,當程序想要播放音頻時,將使用函數從數據庫調用名爲audio的音頻。僅供參考,我爲ITP托福考試打造了一個應用程序。我爲聽力部分做了這部分。 問題是當我想要轉到下一個問題時,音頻仍會播放,我希望將停止功能添加到用於開始播放音頻的相同按鈕。如何在Android上添加停止功能到我的音頻播放器?

這裏是我的代碼是播放音頻

變量聲明部分:

private static MediaPlayer mp; 

組件initialitations:

mainkan.setOnClickListener(new OnClickListener(){ 
     public void onClick(View arg0){ 
      mainkan.setEnabled(false); 
       go(audioSoal); 
      } 
    }); 

* mainkan的意思是 「玩」

這是主要功能播放音頻,這是「字符串聲音」來自數據庫,並指向音頻文件上RES /生文件夾

public void go(String audio){ 
    int resId = getResources().getIdentifier("raw/"+audio, null, this.getPackageName()); 
    mp=MediaPlayer.create(section3db.this, resId); 
     try { 
      mp.prepare(); 
     } 
     catch(IllegalStateException e){ 
      // TODO auto-generated catch block 
      e.printStackTrace(); 
     } 
     catch(IOException e){ 
      // TODO auto-generated catch block 
      e.printStackTrace(); 
     } 
    mp.start(); 
    mp.setOnCompletionListener(new OnCompletionListener(){ 
     public void onCompletion(MediaPlayer arg0){ 
      mainkan.setEnabled(true); 
     } 
}); 
} 

有人可以幫助我嗎?感謝提前:)

+0

你有什麼問題?清除問題。 – Aleksandr

+0

問題是我想添加停止功能來停止播放音頻,當我去下一個問題 – user2975668

回答

0

電話上的任何按鈕單擊事件這個方法:

mp.stop(); 

這將停止播放器。

如果要暫停,然後做到這一點:

mp.pause(); 
+0

它的工作,但在下一個問題,音頻不加載。 是這個問題:'onCompletion'函數? – user2975668

+0

完成後,檢查它是否正在播放: mp.isPlaying(); 如果它返回true然後調用mp.stop()然後mp.reset()其他只是mp.reset() 檢查此:http://developer.android.com/reference/android/media/MediaPlayer。 html – Prakash

+0

@Prakah,非常感謝:)幫助我很多 – user2975668

相關問題