마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

마시멜로(6.0) 버전에서 절전모드시 스트리밍이 전부 중지되어 버리네요...

0 추천

HLS를 이용한 오디오 플레이어를 제작하고 있는데 마시멜로에서 절전모드를 켜고 화면을 끄면 스트리밍이 끊기고 재생이 중지되어 버립니다.

아래 로그와 같이 End of Stream 메시지와 함께 재생이 중지됩니다. 서비스는 계속 살아 있는 상태고 WakeLock, WifiLock의 사용여부에 관계없이 발생중입니다. 마시멜로 이전엔 잘 동작하다가 마시멜로 업뎃부터 갑자기 끊겨서 당황스럽네요..

마시멜로에서 Doze 모드 도입과 함께 절전모드 적용범위가 강화된게 아닌가 의심스럽긴 한데 확인할 방법이 없네요...

혹시 해결책 또는 우회책을 아시는 분은 답변주시면 감사하겠습니다...

03-10 10:25:02.251: V/LiveSession(3156): [audio] dequeueAccessUnit: time 29117823 us, original 28096122600 us
03-10 10:25:02.381: V/LiveSession(3156): [audio] dequeueAccessUnit: time 29257145 us, original 28096261922 us
03-10 10:25:02.501: V/LiveSession(3156): [audio] dequeueAccessUnit: time 29396467 us, original 28096401244 us
03-10 10:25:02.641: V/LiveSession(3156): [audio] dequeueAccessUnit: time 29535778 us, original 28096540555 us
03-10 10:25:02.761: V/LiveSession(3156): [audio] dequeueAccessUnit: time 29675100 us, original 28096679877 us
03-10 10:25:02.951: V/LiveSession(3156): [audio] dequeueAccessUnit: time 29814423 us, original 28096819200 us
03-10 10:25:03.081: V/LiveSession(3156): [audio] dequeueAccessUnit: no buffer available (finalResult=-1011)
03-10 10:25:03.081: I/NuPlayerDecoder(3156): End of Stream
03-10 10:25:03.451: D/SSRM:n(3670): SIOP:: AP = 300, PST = 285 (W:16), CP = 245, CUR = 177, LCD = 0
03-10 10:25:03.771: I/NuPlayerDecoder(3156): [audio] saw output EOS
03-10 10:25:03.771: I/NuPlayerRenderer(3156): onQueueEOS audio finalResult : -1011
03-10 10:25:04.151: I/NuPlayerRenderer(3156): [audio] notifyEOS() End of Stream, delayUs : 549838
03-10 10:25:04.151: V/AudioSink(3156): stop
03-10 10:25:04.151: V/NuPlayer(3156): MEDIA_INFO_BUFFERING_START
03-10 10:25:04.151: V/NuPlayer(3156): msg : 200, ext1 : 701, ext2 : 0
03-10 10:25:04.151: D/NuPlayerDriver(3156): notifyListener_l(0xedac6860), (200, 701, 0)
03-10 10:25:04.151: V/MediaPlayerService(3156): [262] notify (0xed649040, 200, 701, 0)
03-10 10:25:04.151: V/MediaPlayer(30621): message received msg=200, ext1=701, ext2=0
03-10 10:25:04.151: W/MediaPlayer(30621): info/warning (701, 0)
03-10 10:25:04.151: V/MediaPlayer(30621): callback application
03-10 10:25:04.151: V/MediaPlayer(30621): back from callback
03-10 10:25:04.151: E/MusicService(30621): [onInfo] code: 701, extra: 0, player: 244740869
03-10 10:25:04.151: V/MediaPlayer(30621): invoke 68
03-10 10:25:04.161: I/MediaPlayerService(3156): Client::invoke requestID=1
03-10 10:25:04.161: V/NuPlayer(3156): getTrackInfo
03-10 10:25:04.161: E/MusicService(30621): [onInfo] MEDIA_INFO_BUFFERING_START
03-10 10:25:04.701: I/NuPlayerRenderer(3156): reachedAudioEOS (1)
03-10 10:25:04.701: V/NuPlayer(3156): reached audio EOS
03-10 10:25:04.701: V/NuPlayer(3156): msg : 2, ext1 : 0, ext2 : 0
03-10 10:25:04.701: D/NuPlayerDriver(3156): notifyListener_l(0xedac6860), (2, 0, 0)
03-10 10:25:04.701: V/MediaPlayerService(3156): [262] notify (0xed649040, 2, 0, 0)
03-10 10:25:04.701: I/NuPlayerRenderer(3156): onPause
03-10 10:25:04.701: I/MediaClock(3156): setPlaybackRate rate : 0.000000
03-10 10:25:04.701: V/AudioSink(3156): stop
03-10 10:25:04.701: V/MediaPlayer(30621): message received msg=2, ext1=0, ext2=0
03-10 10:25:04.701: V/MediaPlayer(30621): playback complete
03-10 10:25:04.701: V/MediaPlayer(30621): callback application
03-10 10:25:04.701: V/MediaPlayer(30621): back from callback

이카르테 (3,570 포인트) 님이 2016년 3월 10일 질문

1개의 답변

0 추천
자답입니다...

배터리 소모내역 -> 배터리최적화 -> 앱 제외를 하면 정상동작합니다.

API 23부터 PowerManager에 isIgnoringBatteryOptimizations(String packageName) 함수가 추가되어 있네요.

구글에서는 배터리 최적화가 되어있는지 앱에서 판단해서 사용자에게 알려 사용자가 직접 설정하길 원하는 것 같네요.
이카르테 (3,570 포인트) 님이 2016년 3월 11일 답변
...