안드로이드 개발 질문/답변
(글 수 45,052)
MediaPlayer로 rtsp 영상을 재생하는데,
대략 1분 30초쯤 후에는 소리만 안나옵니다.
아래 로그가 발생 직후입니다.
W/AudioTrack( 3086): obtainBuffer timed out (is the CPU pegged?) 0xe2858 user=001ff16a, server=001fe000
D/AudioHardwareMot( 3086): AudioMgr:Output 0xb538 exiting standby
D/AudioHardwareMot( 3086): AudioMgr:AudioStreamOutMot::standby called
D/AudioHardwareMot( 3086): AudioMgr:Output 0xb538 entering standby
D/AudioHardwareMot( 3086): AudioMgr:Closing stereo device
Ustream은 이런 문제가 없는데,
obtainBuffer 문제인것으로 짐작만 되는데요.
혹시 같은 문제에 경험,해결책이 있으신 분께 정중히 문의드립니다.
장치는 모토로이 입니다.
(유독 모토로라쪽만 그런듯도 싶고..)
2010.05.27 21:32:38
도넛 버젼에서 MP3 소리 끊김 현상을 디버깅할 때 유사한 로그를 봤습니다.
이 때 원인은 decoding이 느리게 되어서 디코드된 버퍼를 기다리던 쓰레드에서 출력되는 로그로 확인했습니다.
"CPU pegged?"라는 메시지는 그 때문에 출력되었습니다.
차이가 좀 있는게 제가 본 도넛 코드에서는 AudioMixerThread레벨에서 standby 출렸했는데 AudioHardware에서 standby가 되었네요.
AudioMixerThread에서 stand by는 decoder를 다시 실행하는 코드로 보였는데 여기서는 아래 sound device를 close해 버리니 좀 다르네요.
rtsp라고 하시니 네트워크 속도가 늦어서 decoder 기다리던 쪽에서 hardware까지 standby로 빠지는 건 아닌가 추측해봅니다.
테스트 하시는 어플이 직접 만드신 건지 아니면 구글에서 제공하는 Camera 어플인지 모르겠네요.
만약 직접 만드신 거면 구굴의 Camera어플로 한번 확인해보시는 것도 방법이 아닌가 합니다.
구글 app에서도 그러면 플랫폼의 문제니 어쩔 수 없지 않을까 싶으네요.