alsa ~/.asoundrc 中 pcm 和 ctl 的区别

alsa ~/.asoundrc 中 pcm 和 ctl 的区别

我需要编写一个~/.asoundrc文件来配置一些音频设备,因为我需要能够从这些设备中选择单个通道。

因为我对 alsa 不是很有经验,所以我开始寻找一个主题简介。它指出基本.asoundrc文件看起来像这样:

pcm.!default {
    type hw
    card 0
}

ctl.!default {
    type hw           
    card 0
}

但我不知道这个ctl选项有什么用。我在ALSA 文档仍然没有向我清楚地解释:

“pcm”选项会影响哪张卡和设备将用于音频播放,而“ctl”选项会影响哪张卡被 alsamixer 等控制实用程序使用。

pcm和有什么区别ctl?它们的用途是什么?什么时候使用哪一个?


更新
我现在可以在同一台设备但通过两个不同的频道播放不同的音频流:

pcm.USB_hw{
    type hw
    format S16_LE
    rate 48000
    card 2
    device 0
    subdevice 0
    channels 2
}

pcm.USB_dmix{
    type dmix
    ipc_key 1111
    slave.pcm "USB_hw"

    hint {
        description "Direct sample mixing device"
    }
}

pcm.OUTPUT0 {
    type plug
    slave.pcm {
        type route
        slave.pcm "USB_dmix"

        ttable{
            0.0 0
            1.1 1
        }

        hint {
            description "Playback channel 0 over USB"
        }
    }
}

pcm.OUTPUT1 {
    type plug
    slave.pcm {
        type route
        slave.pcm "USB_dmix"

        ttable {
            0.0 1
            1.1 0
        }

        hint {
            description "Playback channel 1 over USB"
        }
    }
}

OUTPUT0运行正常,但我无法访问这些插件(和OUTPUT1)的音量alsamixer。此访问可能是在ctl选项中配置的,但我从未使用过。

问题是如何配置ctl才能让这些插头显示在alsamixer?
有可能吗?

相关内容