Воспроизведение нескольких файлов wav с использованием ALSA в C с разными объемами

Мне нужно воспроизвести более 2 файлов wav, используя интерфейс C библиотеки ALSA. Каждый файл должен воспроизводиться с разной громкостью, но должна быть возможность воспроизведения их одновременно. Я использую встроенный Linux на плате с устройством sgtl5000. Я получаю только одну запись для устройства воспроизведения как pcm0p. Пожалуйста, дайте мне знать, как воспроизвести несколько звуков вместе с разной громкостью. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. заранее спасибо


person mohan    schedule 05.02.2013    source источник


Ответы (1)


Если библиотека ALSA была скомпилирована с плагином dmix, просто откройте устройство с именем plug:dmix для каждого файла.

person CL.    schedule 05.02.2013
comment
А если нет (или невозможно перекомпилировать alsa), мой ответ на этот вопрос описывает общий подход к программному микшированию. - person marko; 06.02.2013
comment
Привет, спасибо за быстрый ответ. Я могу открыть устройство «plug: dmix» для каждого файла и одновременно воспроизводить несколько звуков. Есть ли способ установить громкость для воспроизведения каждого файла отдельно (при их совместном воспроизведении) в ALSA? - person mohan; 06.02.2013
comment
Для этого нет предопределенного плагина. Просто меняйте семплы, когда записываете их на устройство. - person CL.; 06.02.2013