Anda dapat mengonfigurasi dmix ALSA plugin untuk memungkinkan beberapa aplikasi berbagi perangkat input/output.
Contoh konfigurasi untuk melakukannya adalah di bawah ini:
pcm.dmixed {
type dmix
ipc_key 1024
ipc_key_add_uid 0
slave.pcm "hw:0,0"
}
pcm.dsnooped {
type dsnoop
ipc_key 1025
slave.pcm "hw:0,0"
}
pcm.duplex {
type asym
playback.pcm "dmixed"
capture.pcm "dsnooped"
}
# Instruct ALSA to use pcm.duplex as the default device
pcm.!default {
type plug
slave.pcm "duplex"
}
ctl.!default {
type hw
card 0
}
Ini melakukan hal berikut:
- membuat perangkat baru menggunakan
dmixplugin, yang memungkinkan banyak aplikasi berbagi aliran keluaran - membuat yang lain menggunakan
dsnoopyang melakukan hal yang sama untuk input stream - menggabungkannya menjadi
duplexbaru perangkat yang akan mendukung input dan output menggunakanasympengaya - beri tahu ALSA untuk menggunakan
duplexyang baru perangkat sebagai perangkat default - beri tahu ALSA untuk menggunakan
hw:0untuk mengontrol perangkat default (alsamixer dan sebagainya)
Tempelkan ini di ~/.asoundrc atau /etc/asound.conf dan Anda harus melakukannya dengan baik.
Untuk informasi selengkapnya, lihat http://www.alsa-project.org/main/index.php/Asoundrc#Software_mixing.
ALSA tidak menyediakan mixer. Jika Anda perlu memutar beberapa streaming audio secara bersamaan, Anda harus menggabungkannya sendiri.
Cara termudah untuk melakukannya adalah dengan mendekode file WAV ke float sampel, tambahkan, dan potong saat mengonversinya kembali ke sampel bilangan bulat.
Cara lainnya, Anda dapat mencoba membuka default perangkat audio (dan tidak perangkat keras seperti "hw:0") beberapa kali, satu kali untuk setiap streaming yang ingin Anda putar, dan berharap plugin dmix ALSA dimuat dan akan menyediakan fungsi pencampuran.