Звуковой сбой в буферизованной очереди Android OpenSLES

Я реализовал буферизованную очередь OpenSLES, следуя примеру здесь: https://github.com/googlesamples/android-ndk/blob/master/native-audio/app/src/main/cpp/native-audio-jni.c

Однако, когда я ставлю свой звук в очередь и он (неявно) воспроизводится, я слышу сбой в начале звука:

(*bqPlayerBufferQueue)->Enqueue(bqPlayerBufferQueue, nextBuffer, nextSize);

Этого сбоя нет в (файловом) образце.

Если я дважды поставлю в очередь образец, я дважды услышу этот сбой.

Образец был закодирован с помощью Audacity в моно .wav 44 кГц.


person FloFu    schedule 08.02.2017    source источник


Ответы (1)


На самом деле формат .wav не означает необработанный, поэтому файл начинается с заголовка. Это и вызвало глюк в начале.

С Audacity экспорт как «Другой несжатый формат»> «RAW (без заголовка)», «16-битный PCM со знаком» решил проблему.

person FloFu    schedule 09.02.2017