1

У меня есть драйвер ALSA для устройства захвата, который отлично работает с VLC. когда я пытаюсь захватить и визуализировать с помощью собственного приложения, имеющего некоторые проблемы. Проблема в том, что: когда я начинаю играть, в начале слышен шум, и звук прерывистый. Прерывистый означает, что некоторые аудио кадры попадают между ними. Это похоже на звук среза для синусоиды, и он непрерывно играет. Я пробовал snd_pcm_drop и snd_pcm_drain, но безрезультатно.

Для рендеринга аудио я использую файл aplay.c в качестве ссылки. Однако, используя код play.c, вначале я получаю шум, чтобы проверить это, я сбросил буфер приложения, а затем проиграл с помощью утилиты aplay. Содержание в буфере приложения в порядке. Я также подтвердил с применением FFPlay. FFPlay также играет без шума. Ссылочная ссылка aplay, и мой аудио рендер похож на ссылочную ссылку.

Вопрос:

Можете ли вы дать мне знать, почему при воспроизведении звука в начале слышен шум

1 ответ1

0

Ваш код пытается прочитать с устройства захвата PCM (затем, вероятно, обработать данные), а затем записать данные на устройство воспроизведения PCM.

В начале, когда вы прочитали, например, 100 сэмплов, а затем записали 100 сэмплов и начали воспроизведение, а затем ожидали захвата следующих 100 сэмплов, буфер воспроизведения будет полностью пустым, когда будут доступны следующие сэмплы. А поскольку ваш код не бесконечно быстр, устройство воспроизведения затем попытается воспроизвести семпл, которого там нет. Это приведет к недопуску или к неправильным данным (в зависимости от того, как вы настроили порог остановки).

Чтобы обеспечить достаточное количество сэмплов, доступных для воспроизведения, даже во время выполнения вашего кода, вы должны собрать как можно больше данных и записать их в буфер воспроизведения, прежде чем запускать устройство воспроизведения. Другими словами, установите порог запуска устройства воспроизведения равным размеру буфера.

И нет никаких причин менять порог остановки со значения по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .