LINUX.ORG.RU

Ответ на: комментарий от deterok

class RtApiAlsa

да, всё тоже самое можно и самому руками сделать - но скудная документация по alsa меня остановила от этого.

x905 ★★★★★
()

Советую не париться с alsa, а сразу посмотреть в сторону OSS. Там все гораздо проще.

Eddy_Em ☆☆☆☆☆
()

Грузи wav с помощью libsndfile. А воспроизводить алсой не так и сложно, правда я бы не советовал тебе связываться с callback'ами для асинхронного вывода, а запустить воспроизведение отдельным потоком. Пример не привожу, т.к. из существующего проекта надо выкусить много лишнего, лучше посмотри простейший пример: A Minimal Playback Program

m0rph ★★★★★
()

Пользуйся OSS. Это глобальней и надежней

Zorn
()
Ответ на: комментарий от m0rph

А что если сразу несколько звуков надо воспроизвести одновременно? Создать пул из пяти потоков?

deterok ★★★★★
() автор топика
Ответ на: комментарий от deterok

Звук воспроизводится небольшими кусочками, называемыми в терминологии alsa периодами. Чтобы воспроизвести несколько звуков параллельно, их нужно предварительно смикшировать (сложить сигналы в результирующий буфер-период) и потом отправить этот буфер на воспроизведение. Можно конечно и в несколько потоков восроизводить, а микширование делегиовать dmix'у, но это извращение.

m0rph ★★★★★
()
Ответ на: комментарий от m0rph

... я бы не советовал тебе связываться с callback'ами для асинхронного вывода, а запустить воспроизведение отдельным потоком

чем callback-и хуже ?

x905 ★★★★★
()
Ответ на: комментарий от Eddy_Em

В OSS просто открываешь в несколько потоков /dev/dsp и пишешь туда. Не парясь с микшированием.

В ALSA тоже так можно, я писал об этом выше. Только этот способ неправильный - жрет больше системных ресурсов и не дает возможности синхронизации звуков с точностью до сэмпла.

m0rph ★★★★★
()
Ответ на: комментарий от Eddy_Em

Это я все не к тому, что OSS хуже. ALSA API слишком перегружен и документирован с помощью Doxygen в стиле капитана очевидности (можно считать что недокументирован вообще), а OSS API гораздо более прямой. Но у ТС задача стоит именно в работе с ALSA.

m0rph ★★★★★
()
Ответ на: комментарий от teod0r

громкости/каналов?

и для настройки громкости нескольких программ?

teod0r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.