2013-12-09 8 views
8

Die Audiowiedergabe wurde erfolgreich auf dem Samsung Galaxy S3 und HTC One getestet, ist aber auf einem LGE Nexus 4 mit Android 4.4 stark beschädigt. Was passiert, ist, dass für einen Bruchteil einer Sekunde ein perfektes Audio zu hören ist, dann gibt es ein paar Sekunden Stille, gefolgt von einem weiteren kurzen Stück Audio, dann Stille, und so geht es. Es scheint also so, als ob die Audio-Streaming-Logik in einer ewigen Start-Play-Underrun-Stop-Schleife endet.Permanentes Audio-Stottern auf LGE Nexus 4 mit dem Deezer Android SDK

Jede Sekunde oder so sehe ich die folgende Warnung protokolliert:

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 

Dies führt mich über mögliche Audiopuffer Unterschiede zwischen den Geräten denken, so dass einige Sondieren ich habe: Mein

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 

Spekulationen sind, dass das Deezer Android SDK auf diesem speziellen Gerät eine zu kleine Puffergröße festlegt, da es so aussieht, als würde es eine Puffergröße wählen, die das 10-fache der angegebenen Mindestgröße ist.

UPDATE: reproduziert nur das Audio-Stottern auf einem HTC One mit 4.4, wo GetMinBufferSize() 16932 zurückgeben (wie es auf Android < 4.4 tat). Dieses Problem ist also eindeutig nicht gerätespezifisch, sondern bezieht sich auf betriebssystemspezifische Verhaltensänderungen, die mit KitKat beginnen.

+0

Sehen Sie, ob Sie ein Open-Source-Beispiel finden können, das auf der neuen Version ohne Stottern spielt, und sehen Sie, ob Sie herausfinden können, was anders ist, was sie tun, von dem, was Sie sind. –

Antwort

1

Dies ist in der Tat ein Problem, das durch das Android 4.4-Update ausgelöst wird. Etwas in der AudioTrack-Implementierung hat sich geändert und diese Unterlaufprobleme verursacht.

Wir arbeiten gerade an einer Lösung für dieses Problem und wir werden es so schnell wie möglich veröffentlichen.

+0

Irgendwelche Updates zu diesem Thema? – spartygw

+0

Ich hatte dieses Problem beim Debuggen mit einem "Method Breakpoint", anscheinend verlangsamt das wirklich die Dinge, – izzy

Verwandte Themen