ALSA:同时播放和输出到多个蓝牙设备?

时间:2021-07-29 04:03:55

标签: linux audio bluetooth alsa a2dp

如何配置 ALSA 的 asoundrc 文件以向两个蓝牙设备输入和输出音频数据?我曾尝试使用 dmix 和 dsnoop 插件来执行类似于以下帖子中所示的操作:ALSA Api: How to play two wave files simultaneously?。并查看了以下来源:https://www.alsa-project.org/main/index.php/Asoundrc#Software_mixinghttps://github.com/Arkq/bluez-alsa/wiki/Using-the-bluealsa-ALSA-pcm-plugin。我想要做的就是使用 arecord 和 aplay 命令输出到这两个蓝牙设备。任何建议将不胜感激。

当我跑的时候:aplay -D mix_stream /home/pi/Desktop/noise.wav

错误:ALSA lib pcm_direct.c:1809:(_snd_pcm_direct_get_slave_ipc_offset) 从 PCM 的无效类型“bluealsa”

aplay: main:828: 音频打开错误:参数无效

编辑:我了解到 dmix 和 dsnoop 仅适用于硬件设备,所以我改用 multi 插件。但是,我仍然遇到以下命令的问题:arecord -D bth-multi -c 2 -r 44100 -f s16_le test.wav。它输出以下错误:ALSA lib bluealsa-pcm.c:763:(_snd_pcm_bluealsa_open) 无法获得 BlueALSA PCM:找不到 PCM arecord: main:828: 音频打开错误:没有这样的设备。

这是我在 bluez-alsa github 页面上从 @Arkq 引用的当前 asoundrc 文件。这是官方链接:https://github.com/Arkq/bluez-alsa/issues/379#issuecomment-707309026

pcm.bth-1 {
    type plug
    slave.pcm {
        type bluealsa
        device "FA:D8:78:FB:57:36"
        profile "a2dp"
    }
}

pcm.bth-2 {
    type plug
    slave.pcm {
        type bluealsa
        device "5C:44:3E:54:E0:01"
        profile "a2dp"
    }
}

pcm.bth-multi {
   type plug;
   slave.pcm {
       type multi;
       slaves.a.pcm "bth-1";
       slaves.a.channels 2;
       slaves.b.pcm "bth-2";
       slaves.b.channels 2;
       bindings.0 { slave a; channel 0; }
       bindings.1 { slave a; channel 1; }
       bindings.2 { slave b; channel 0; }
       bindings.3 { slave b; channel 1; }
       master 1
   }
   ttable.0.0 1
   ttable.1.1 1
   ttable.0.2 1
   ttable.1.3 1
}

1 个答案:

答案 0 :(得分:0)

我认为您错过了 }slave.pcm 块的右大括号 (pcm.y30)。它应该是这样的:

pcm.y30 {
    type plug
    slave.pcm {
        type bluealsa
        device "FA:D8:78:FB:57:36"
        profile "a2dp"
    }
}
相关问题