2013-03-23 3 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

답변

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(...); 

입니다 이미 prepare (또는 그 변종)를 호출 할 수 있도록 MediaPlayer를 다시 반환 (그리고 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(); 대신]

관련 문제