Linux / ALSA: обратный вызов при записи кадра на звуковую карту - PullRequest
0 голосов
/ 25 июня 2019

Я новичок в звуковом программировании и ALSA.Я хотел бы создать небольшое приложение, которое, например, печатает на консоль, когда кадр данных записывается в ALSA с snd_pcm_writei(...).Это возможно и если да, то как?В настоящее время я думаю о регистрации обратного вызова в ALSA, поэтому, когда приложение вызывает snd_pcm_writei(...), обратный вызов выполняется.Но я не уверен, что так оно и есть.

1 Ответ

1 голос
/ 25 июня 2019

Вы можете использовать

  • режим блокировки (по умолчанию), в котором snd_pcm_write*() возвращается только тогда, когда все данные были записаны в кольцевой буфер (или когдапроизошла ошибка), или
  • неблокирующий режим (включается с SND_PCM_NONBLOCK при открытии или snd_pcm_nonblock()), в котором вы можете использовать poll() / epoll()и т. д. для получения уведомления.

Использование асинхронного обработчика ALSA работает только с определенными устройствами и имеет все недостатки обработчиков сигналов;устарело.

...