오디오 재생이 Samsung Galaxy S3 및 HTC One에서 성공적으로 테스트되었지만 Android 4.4를 실행하는 LGE Nexus 4에서 심각하게 손상되었습니다. 무슨 일이 일어날 지 완벽하게 훌륭한 오디오는 몇 초 동안 들릴 수 있습니다. 그런 다음 몇 초 동안 무음이 나오고 또 다른 짧은 오디오가 이어지고 침묵이 발생합니다. 따라서 오디오 스트리밍 로직이 영원한 시작 - 재생 - 언더런 중지 루프로 끝나는 것처럼 보입니다.Deezer Android SDK가 포함 된 LGE Nexus 4의 영구적 인 오디오 더듬음
모든 초 그래서 나는 다음과 같은 경고가 기록을 참조하십시오 :
12-09 00:55:56.982 10842-14365/com.soundrop.android W/AudioTrack﹕ releaseBuffer() track 0x7b03f4e0 name=s:176;n:2;f:-1 disabled due to previous underrun, restarting
12-09 00:55:57.583 10842-14367/com.soundrop.android W/AudioTrack﹕ releaseBuffer() track 0x7b03f4e0 name=s:176;n:2;f:-1 disabled due to previous underrun, restarting
12-09 00:55:58.594 10842-14369/com.soundrop.android W/AudioTrack﹕ releaseBuffer() track 0x7b03f4e0 name=s:176;n:2;f:-1 disabled due to previous underrun, restarting
12-09 00:55:59.595 10842-14371/com.soundrop.android W/AudioTrack﹕ releaseBuffer() track 0x7b03f4e0 name=s:176;n:2;f:-1 disabled due to previous underrun, restarting
12-09 00:56:02.047 10842-14379/com.soundrop.android W/AudioTrack﹕ releaseBuffer() track 0x7b03f4e0 name=s:176;n:2;f:-1 disabled due to previous underrun, restarting
이 장치 간의 가능한 오디오 버퍼의 차이에 대해 생각하는 저를 이끌어, 그래서 일부 프로빙 않았다
HTC One (good playback): AudioTrack.getMinBufferSize(44100, STEREO, ENCODING_PCM_16BIT) => 16932
LGE Nexus 4 (bad playback): AudioTrack.getMinBufferSize(44100, STEREO, ENCODING_PCM_16BIT) => 7056
내 Deezer Android SDK는보고 된 최소 크기의 10 배인 버퍼 크기를 선택하는 것처럼이 특정 장치에 너무 작은 버퍼 크기를 설정합니다.
업데이트 : getMinBufferSize()가 안드로이드 < 4.4에서와 같이 16932를 반환하는 4.4 버전의 HTC One에서 오디오 더듬을 재현했습니다. 따라서이 문제는 기기마다 다르지는 않지만 KitKat으로 시작하는 OS 별 행동 변화와 관련이 있습니다.
는 말더듬 않고 새 버전을 재생 오픈 소스 예를 찾을 수 있는지, 당신은 그들이 당신이 무엇에서 무엇을하고 있는지에 대해 다른 무엇인지 알아낼 수 있는지. –