2011-07-28 2 views
0

여러 가지 유사한 질문을 읽은 후 인터넷에서 미디어 파일을 스트리밍 할 때이 오류가 발생하는 모든 개발자에게이 동작을 확인했습니다.AudioHardware pcm 재생이 SD 카드에서 재생할 때 대기 오류가 발생합니다.

SD 카드에서 오디오 파일 (MP3)을 사용하며 서비스에서 재생합니다. 나는 서로를 하나씩 재생하고 어떤 시점에서 MediaPlayer는 제목에 표시된 메시지로 사망합니다. 등록 된 OnErrorListener를 통해 오류가 발생하지 않습니다. 파일 중 하나의 마지막 곡 이후에 단순히 죽은 것입니다. 동일한 파일 순서를 사용하면 항상 동일한 파일입니다.

응용 프로그램을 추적해도 메모리 사용량이 증가하지 않았습니다. GC를 피하기 위해 MediaPlayer를 정적으로 만들려고했습니다. 마지막 접근 방식은 MediaPlayer를 간결하게하고 정적 변수를 NULL로 만들고 새로운 것을 새로 만들고 다시 시작하는 것입니다. 이것은 도움이되지 못했습니다. 하드웨어가 사라 졌다면 사라졌습니다.

Google Nexus One에서이 기능을 경험할 수 있습니다. 도움이 필요합니다. 파일 끝에 3 초가 지나면 페이드 아웃하는 팁을 읽었습니다. 이것이 진정한 해결책입니까? 어떻게해야합니까?

미리 감사드립니다.

답변

1

아니라, 내가 u는 구현 생각 "onCompletion"MediaPlayer를의 이벤트, 나는 버그가 안드로이드 화재 onCompletion 이벤트 (mediaPlayer.isPlaying는) 아직 진정한 그래서 내 생각은 다음 MP3

를 재생하기 전에 미디어 플레이어를 중지하는 것입니다 동안 것을 생각

이와 비슷한 ...

public void onCompletion(MediaPlayer mp) { 
        if(mp != null && mp.isPlaying()){ 
      Log.d("onCompletion", "mp is playing !!! stop it!!!"); 
      mp.stop(); 
     } 
     /* 
     play next item here or prepare or ... 
     */ 
} 
관련 문제