ALSA の dmix
を設定できます 複数のアプリケーションが入出力デバイスを共有できるようにするプラグイン
これを行う構成の例を以下に示します:
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
}
これは次のことを行います:
dmix
を使用して新しいデバイスを作成します 複数のアプリが出力ストリームを共有できるようにするプラグインdsnoop
を使用して別のものを作成します 入力ストリームに対して同じことを行います- これらを新しい
duplex
にマージしますasym
を使用した入出力をサポートするデバイス プラグイン - 新しい
duplex
を使用するように ALSA に指示します デフォルトのデバイスとしてのデバイス - ALSA に
hw:0
を使用するように指示する デフォルトのデバイス (alsamixer など) を制御する
これを ~/.asoundrc
のどちらかに貼り付けます または /etc/asound.conf
詳細については、http://www.alsa-project.org/main/index.php/Asoundrc#Software_mixing を参照してください。
ALSA はミキサーを提供しません。複数のオーディオ ストリームを同時に再生する必要がある場合は、それらを自分でミックスする必要があります。
これを実現する最も簡単な方法は、WAV ファイルを float
にデコードすることです。 サンプルを追加し、整数サンプルに変換するときにクリップします。
または、デフォルトを開いてみることができます オーディオ デバイス (および ではない "hw:0" のようなハードウェア デバイス) を複数回 (再生するストリームごとに 1 回)、dmix ALSA プラグインが読み込まれ、ミキシング機能が提供されることを期待します。