通过多个音频设备播放音频(不使用 UI)

通过多个音频设备播放音频(不使用 UI)

我有 2 个声卡,我想让播放的声音在两个声卡上都播放。我知道如何通过 GUI 执行此操作(通过两个或更多输出/设备播放声音),但我的情况有所不同:

  • 我不用pulseaudio,直接用alsa
  • 我想使用命令行

有什么想法吗?谢谢!

答案1

您可以在您的~/.asoundrc或在中定义一个新设备/etc/asound.conf

pcm.both {
    type plug
    slave.pcm {
        type multi
        slaves.a {
            pcm "hw:0"   # or whatever
            channels 2
        }
        slaves.b {
            pcm "hw:1"   # ...
            channels 2
        }
        bindings [
            { slave a channel 0 }
            { slave a channel 1 }
            { slave b channel 0 }
            { slave b channel 1 }
        ]
    }
    ttable [
        [ 1 0 1 0 ]
        [ 0 1 0 1 ]
    ]
}

然后使用both设备名称:aplay -D both something.wav

如果这些设备的时钟速度不完全匹配,multi插件最终将超出/低于设备的某个缓冲区(PulseAudio 将能够动态重新采样)。

相关内容