Я хотел бы вызвать snd_pcm_readi () и получать AUDIO DATA каждые 20 мс или каждые 40 мс.Я хочу знать, как получить мои данные синхронно ... то есть каждые X мс ...
Спасибо за любые ответы.
для чтения или воспроизведения аудио в реальном времени, вы обычно создаете выделенный рабочий поток с высоким приоритетом для вызова, а затем используете несколько кольцевых буферов.Ваш поток должен избегать блокировки.
Примеры alsa:
http://www.alsa -project.org / alsa-doc / alsa-lib / _2test_2latency_8c-example.html # a36
http://www.alsa -project.org / alsa-doc / alsa-lib / _2test_2pcm_8c-example.html
если вы просто читаете с диска, вы 'Вам понадобится достаточно буфера, затем просто проснитесь и посмотрите, нужно ли вам читать больше, прежде чем в следующий раз проснуться (учитывая общую задержку).