반응형
Android : Mediaplayer가 처리되지 않은 이벤트로 사라졌습니다.
앱에서 재생해야하는 일련의 음성 안내를 위해 오디오 파일의 길이를 가져와야합니다. 오디오 파일을 리소스로 추가했으며 제대로 재생됩니다. 아래 샘플 코드는 실제로 의도 된 목적에 완벽하게 작동합니다. 오디오 파일의 길이를 반환합니다.
다음은 코드입니다.
float getDurationOfAudioResource(LocationEnum loc, Context context){
float duration = 0;
try {
MediaPlayer mp;
mp = MediaPlayer.create(context, getAudioResource(loc));
duration = mp.getDuration();
mp.release();
mp = null;
}
catch (IllegalStateException e) {e.printStackTrace(); logError(25, "TestDescItem:Fault::Could not open mediaplayer object with audio resource.");}
return duration;
}
여기에 이상한 점이 있습니다. 이 코드는 주어진 테스트에 대한 오디오 지침 세트를 준비하는 Main 활동에서 호출됩니다. 이 활동에는 오류가 없습니다. 그러나 두 번째 활동이 호출 되 자마자 logcat에 긴 오류 문자열이 표시됩니다.
03-07 13:23:43.820: I/ActionLogger(21435): GenTest_Info_Test #0 successfully created.
03-07 13:23:43.830: I/ActionLogger(21435): GenTest_Info_Test #1 successfully created.
03-07 13:23:43.840: I/ActionLogger(21435): GenTest_Info_Test #2 successfully created.
03-07 13:23:43.850: I/ActionLogger(21435): GenTest_Info_Test #3 successfully created.
<snip>
03-07 13:23:43.910: I/ActionLogger(21435): GenTest_Info_all tests successfully created.
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.270: W/MediaPlayer(21435): mediaplayer went away with unhandled events
<snip>
Main 활동의 끝 (오류 없음)과 두 번째 활동의 첫 번째 줄까지 한 단계 씩 이동했습니다. 오류는 확실히 활동 사이에 발생합니다.
또한 try 블록의 8 줄을 주석 처리하면 (따라서 0 만 반환 됨) logcat 오류가 방지됩니다. 여덟 줄을 복원하면 오류가 다시 발생합니다. 문서를 파고 웹을 검색했는데 미디어 플레이어 개체를 올바르게 구성, 해제 및 파괴하고 있다고 믿기 때문에 오류가 발생하는 이유를 알 수 없습니다. 즉, 내가 뭔가 잘못하고있는 것 같습니다. 어떤 아이디어?
감사,
케빈
그냥 mp.reset();
앞에 넣어 mp.release();
.
거룩한 다섯 :
if(mp!=null) {
if(mp.isPlaying())
mp.stop();
mp.reset();
mp.release();
mp=null;
}
참고 URL : https://stackoverflow.com/questions/9609479/android-mediaplayer-went-away-with-unhandled-events
반응형
'development' 카테고리의 다른 글
Visual Studio 2017 bin \ roslyn 파일이 빌드 중에 잠김 (0) | 2020.12.13 |
---|---|
li에»(») 자동 추가 (0) | 2020.12.13 |
SVG 둥근 모서리 (0) | 2020.12.13 |
iOS 6/7에서 "재사용되는 테이블 셀에 대한 인덱스 경로 없음"메시지의 의미는 무엇입니까? (0) | 2020.12.13 |
문자열을 반환하기 위해 OkHttp의 response.body.toString ()을 가져올 수 없습니다. (0) | 2020.12.13 |