Подтвердить что ты не робот

AudioTrack: AUDIO_OUTPUT_FLAG_FAST отклоняется клиентом из-за несовпадения частоты дискретизации

Кто-нибудь знает, как исправить это предупреждение?

07-14 10: 38: 55.411 V/tracker-audiotest (22426): Запись Thread:: run(): запуск записи аудиозаписей. 07-14 10: 45: 51.490 "W/AudioTrack (607): AUDIO_OUTPUT_FLAG_FAST, отказано клиентом из-за несоответствия частоты дискретизации (44100 против 48000)"

Когда я тестирую задержку звука на Android 4.4, я сталкиваюсь с внезапной задержкой, увеличивающейся после того, как я увидел это предупреждение. Но я не меняю частоту дискретизации во время теста, а начальная настройка - на 48 кГц. Это предупреждение появляется после запуска 7 минут.

Вы можете протестировать этот проект на своем устройстве, если это необходимо. Проект находится в GitHub:

https://github.com/garyyu/OpenSL-ES-Android-DelayTest

4b9b3361

Ответ 1

AUDIO_OUTPUT_FLAG_FAST отклоняется, потому что вы используете другую скорость, чем тот, который поддерживается в аппаратном обеспечении. Вам нужно запросить поддерживаемую аппаратную частоту дискретизации и записать с такой скоростью, а не жесткий код на 48 кГц.

Ответ 2

Попробуйте изменить частоту дискретизации в

рамки/основание/
рамки/ау/
аппаратное обеспечение /libhardware

местоположения.

частота выборки по умолчанию - 44100, попробуйте установить частоту дискретизации (ваши аудиофайлы). он будет работать.

приветствий.

Ответ 3

Вы можете попробовать использовать интерфейс функции Java:
      AudioManager myAudioMgr = (AudioManager) getSystemService (Context.AUDIO_SERVICE);
      nativeSampleRate = myAudioMgr.getProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE);

чтобы получить стандартную частоту дискретизации на вашем телефоне, используйте это для создания проигрывателя.
 Также попробуйте использовать:       nativeSampleBufSize = myAudioMgr.getProperty(AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER);

чтобы получить размер буфера по умолчанию (он находится в кадрах) и использовать его для воспроизведения.

Вы можете посмотреть пример кода JNI audio-echo, если JNI подходит для вас.