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
dmix
plugin, yang memungkinkan banyak aplikasi berbagi aliran keluaran - membuat yang lain menggunakan
dsnoop
yang melakukan hal yang sama untuk input stream - menggabungkannya menjadi
duplex
baru perangkat yang akan mendukung input dan output menggunakanasym
pengaya - beri tahu ALSA untuk menggunakan
duplex
yang baru perangkat sebagai perangkat default - beri tahu ALSA untuk menggunakan
hw:0
untuk 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.