Я пытаюсь записать, что он просто воспроизводит для говорящего, используя следующие API ALSA:
snd_pcm_mmap_writei()
snd_pcm_mmap_readi()
Обе функции вызываются одна за другой в одном потоке. Функция writei () возвращается быстро (я считаю, что она возвращается, когда становится доступен буфер воспроизведения), в то время как readi () возвращается до тех пор, пока не будут захвачены назначенные выборки. Но отснятые сэмплы - это не то, что только что разыгралось. Я предполагаю, что ALSA не находится в дуплексном режиме, то есть сначала нужно закончить воспроизведение, а затем начать запись, которая не записывает ничего значимого, а просто щелкает. Динамик по-прежнему воспроизводит звук правильно.
Все параметры HW / SW настроены правильно. Если я буду делать только звукозаписи, я получу хорошую звуковую волну. Дескрипторы PCM открываются в обычном режиме (не в неблочном, не в асинхронном).
У кого-нибудь есть предложения, как заставить эту работу?
aplay
иarecord
? - person CL.   schedule 15.04.2013