использование ALSA API - звук не начинается, пока буфер не заполнится - PullRequest
1 голос
/ 14 октября 2010

Приложение, которое я использую, воспроизводит звуки только после того, как сгенерировано достаточно звука.Скажем, я щелкаю мышью 10 раз без звука, а затем после этих десяти щелчков я слышу десять звуков щелчка мыши (например)

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

Я пытался использовать параметр start_threshold sw, но это не имеет никакого эффекта.

Кажется, что я должен бытьв состоянии заставить его воспроизводиться, когда записано указанное количество данных, которое находится под размером буфера, это правильно?Это то, что start_threshold указывает на то, что длина периода может быть намного короче буфера (или я видел это в примерах).

Мой код такой:

Вызовите параметр HWsetup

получить байтовый массив с данными

проходить циклически и записывать в буфер плюс одно байтовое смещение каждый раз

запуск вызова (это должно заставить его воспроизводиться, вправо??)

если есть -EPIPE, позвоните подготовить и добавьте 0 к смещению (я думаю, что это единственный раз, когда все играет.)

Спасибо!

...