如何配置 ALSA 的 asoundrc 文件以向两个蓝牙设备输入和输出音频数据?我曾尝试使用 dmix 和 dsnoop 插件来执行类似于以下帖子中所示的操作:ALSA Api: How to play two wave files simultaneously?。并查看了以下来源:https://www.alsa-project.org/main/index.php/Asoundrc#Software_mixing 和 https://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
}
答案 0 :(得分:0)
我认为您错过了 }
中 slave.pcm
块的右大括号 (pcm.y30
)。它应该是这样的:
pcm.y30 {
type plug
slave.pcm {
type bluealsa
device "FA:D8:78:FB:57:36"
profile "a2dp"
}
}