2013-03-23 57 views
2

我在我的應用程序中使用媒體播放器播放一些短音。雖然我在應用程序中沒有發現任何問題/崩潰,但我可以看到以下一些錯誤消息。請幫助我解決此問題。android:媒體播放器 - 暫停狀態8

03-23 22:53:16.229: E/MediaPlayer(19185): pause called in state 8 
03-23 22:53:16.229: E/MediaPlayer(19185): error (-38, 0) 
03-23 22:53:16.449: E/MediaPlayer(19185): Error (-38,0) 
03-23 22:53:16.449: D/OpenGLRenderer(19185): Flushing caches (mode 0) 
03-23 22:53:16.459: D/OpenGLRenderer(19185): Flushing caches (mode 0) 
03-23 22:53:17.759: D/OpenGLRenderer(19185): Flushing caches (mode 0) 
03-23 22:53:17.809: W/MediaPlayer-JNI(19185): MediaPlayer finalized without being released 
03-23 22:53:17.809: W/MediaPlayer-JNI(19185): MediaPlayer finalized without being released 
03-23 22:53:17.809: W/MediaPlayer-JNI(19185): MediaPlayer finalized without being released 
+3

狀態8是'PREPARED'。當玩家處於STARTED狀態時,即成功調用'start()'後,您只能調用'pause()'。 – Michael 2013-03-23 18:06:57

回答

5

您可以使用簡單的if-check來處理暫停。試試這個:

MediaPlayer mp = MediaPlayer.create(this, Uri.parse(Environment.getExternalStorageDirectory().getPath()+ "/Music/jaihind.mp3")); 
if(mp.isPlaying()) { 
    mp.pause(); 
} else { 
    mp.start(); 
} 

注:

mp = MediaPlayer.create(...); 

已經準備MediaPlayer的返回,這樣你就不能調用prepare(或其變體)再次(也沒有必要onPreparedListener以及) 。

1

我認爲你必須使用這個

public class Sound extends Activity{ 

MediaPlayer mp; 

    @Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    mp.release(); 
} 

} 
0

mp.release();的伎倆。 [而不是mp.pause();]