如何使用ALSA混合多个PCM流

Luc*_*lon 6 alsa playback

我有两种不同的PCM样本流.有可能以某种方式混合它们并在同一输出设备上与ALSA一起玩吗?

我读过可能有可能使用调音台,但由于缺乏文档,我发现很难理解.任何人都可以提供更多关于如何实施这些信息的信息(如果确实如此)?

谢谢!

小智 4

为此,请检查我们的系统是否有 .asoundrc 文件。如果不存在,请创建一个,然后将其放置在 /home 文件夹中。使用以下设置更新它:

pcm.!default {
              type plug
              slave.pcm "dmixer"
}
pcm.dmixer  {
            type dmix
        ipc_key 1024
        slave {
          pcm "hw:1,0"
          period_time 0
              period_size 1024
          buffer_size 4096
          rate 44100
        }
        bindings {
          0 0
          1 1
        }
}
ctl.dmixer {
       type hw
       card 0
}
Run Code Online (Sandbox Code Playgroud)

用于$aplay -l获取系统上的设备列表。hw:X,Y 来自硬件的映射,其中 X 是卡号,Y 是设备号。

现在,打开终端,然后播放您的第一个 PCM 流: $aplay -f cd pcm_sound1.wav 在其他选项卡中,播放您的第二个 PCM 流: $aplay -f cd -D default pcm_sound2.wav

它将混合您的两个 PCM 数据流。

干杯,