Alsa: запись snd_pci_readi()

У меня есть специальный поток, который записывает аудио от Alsa через snd_pcm_readi(), Запись происходит нормально в течение примерно 30 минут (каждый файл продолжительностью одна минута), после этого размер файла постепенно уменьшается, и в результате "чтение из аудиоинтерфейса не выполнено err = -32"

if ((err = snd_pcm_readi(capture_handle, buffer, buffer_frames)) != buffer_frames)

{

        fprintf (stderr, "read from audio interface failed (%s)\n",err, snd_strerror (err));
            audio_outbuf_size = (err * snd_pcm_format_width(AUDIO_FORMAT)/ 8 * 2);
}

Любая помощь осуществляется. Спасибо.

1 ответ

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

Пока размер периода остается неизменным, задержка не изменится.

Другие вопросы по тегам