当前位置: 首页 > 知识库问答 >
问题:

树莓Pi3,蓝色合金 - 已连接,但蓝牙扬声器上没有声音输出?

明宜年
2023-03-14

我正在尝试将声音从我的树莓派3播放到蓝牙扬声器,但它不起作用。

pi连接到蓝牙扬声器(当它连接时,扬声器上的自动音频确认,“raspberrypi已连接”,并检查echo“info 04:52: C7:5A:3B: A1”|pi上的Bluetoothctl也显示它已连接)。

扬声器音量没有静音,其他设备可以连接到它并通过它播放。检查< code>alsamixer验证音频未静音。

但是,使用aplay通过蓝牙扬声器播放声音只会导致震耳欲聋的沉默。虽然它看起来有效:

$ aplay -D bluealsa:HCI=hci0,DEV=04:52:C7:5A:3B:A1,PROFILE=a2dp /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono

我已经寻找了可能包含信息的日志文件,但没有找到任何东西。

我是按照这里的说明设置的。该设置的详细信息如下:

  • Raspbian Stretch,2018-10-09图像(bluealsa v5.43现成安装)
  • bluez v5.49下载、构建和安装(无错误)
  • /etc/dbus-1/system.d/bluetooth。conf已编辑,以下行添加到rootelement:
    • <代码>
    • <代码>

    我尝试过将 HCI、设备和配置文件详细信息移动到 .asoundrc 和 /etc/asound.conf 文件中,但这些文件会产生相同的结果(控制台输出表明成功,但当我使用 aplay 时扬声器没有声音)。

    • pi访问是通过SSH(它是无头的)
    • 在启动pi时,sudo systemctl status blue to*在蓝牙服务上显示错误消息:设置隐私失败:拒绝(0x0b),显然是与启动相关的问题(链接),通过在启动后使用systemctl手动重新启动蓝牙服务来修复(难看,但目前可以作为解决方法
    • 在dmesg,user.log或boot.log中没有可疑信息
    • 但以下是daemon.log,它与上面的aplay命令的执行相关(但我已经用相同的控制台输出尝试了几次该命令,它有时只生成它们):

    .

    Nov 10 21:02:16 rpi_3e5ccf bluealsa[789]: /usr/bin/bluealsa: Unsupported AT message: SET: command:+CLIP, value:1
    Nov 10 21:02:16 rpi_3e5ccf bluealsa[789]: /usr/bin/bluealsa: Unsupported AT message: CMD: command:+CLCC, value:(null)
    Nov 10 21:02:16 rpi_3e5ccf bluealsa[789]: /usr/bin/bluealsa: Unsupported AT message: SET: command:+CSRSF, value:0,0,0,1,0,0,0
    

共有1个答案

周超英
2023-03-14

最终,我无法调试它并且变得不耐烦,所以只需擦除SD并从头开始。我遵循的详细步骤如下,这意味着我现在可以使用aplay播放音频而无需指定设备,例如:

aplay /usr/share/sound/alsa/Front_Center.wav

1) 设置 SD 卡映像

  • 使用蚀刻机刻录2018-10-09-raspbian-stretch。img
  • 触摸/引导/ssh
  • 添加合适的/boot/wpasupplicant。conf文件
  • 编辑/rootfs/etc/hostname

2) ssh-copy-id从主机到pi,用于方便的ssh

3)在pi上设置软件:

  • 密码
  • sudo apt更新;sudo-apt-dist升级
  • sudo apt安装vim git屏幕htop rpi更新
  • sudo apt自动删除
  • sudo systemctl设置默认多用户。target#启动时不启动X窗口
  • sudo BRANCH=下一次rpi更新
  • sudo重启

4) 更新bluez

    < li>sudo apt安装libdbus-1-dev libglib 2.0-dev libudev-dev libic al-dev libreadline-dev < Li > < code > wget http://www . kernel . org/pub/Linux/bluetooth/bluez-5.50 . tar . xz tar-xf bluez-5.50 . tar . xz ` < Li > < code > CD bluez-5.50/ < li > <代码>。/configure-prefix =/usr-mandir =/usr/share/man-sysconfdir =/etc-localstatedir =/var-enable-experimental < li> make -j4 < Li > < code > sudo make install < Li > < code > sudo CP/etc/dbus-1/system . d/bluetooth . conf/etc/dbus-1/system . d/bluetooth . conf . bak ,然后编辑: < ul > < li >添加到< code >根目录:

5)让蓝牙正常工作

  • sudo adduser pi 蓝牙
  • 苏多重启
  • 蓝牙:扫描开启
  • 蓝牙:信任 04:52:C7:5A:3B:A1
  • 蓝牙:连接 04:52:C7:5A:3B:A1
  • APLAY -D 蓝色阿尔萨:HCI=hci0,DEV=04:52:C7:5A:3B:A1,配置文件 =a2dp /usr/共享/声音/阿尔萨/Front_Center.wav # 测试它根本有效

6)通过创建以下/etc/asound.conf文件,无需指定设备即可让蓝牙工作:

pcm.bose {
 type plug
  slave {
    pcm {
      type bluealsa
      interface hci0
      device 04:52:C7:5A:3B:A1
      profile "a2dp"
    }
  }
  hint {
    show on
    description "Bose speaker"
  }
}
pcm.!default {
    type plug
    slave.pcm "bose"
}
ctl.!default {
    type hw
    card 0
}

作为参考和信用,这是基于以下三个来源的信息:

  • 链接
  • 链接
  • 链接

作为对@Parthiban上述评论的回复,以下是当前工作系统的dbus监视器输出:

signal time=1541964336.104905 sender=org.freedesktop.DBus -> destination=:1.1 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.1"
signal time=1541964336.105032 sender=org.freedesktop.DBus -> destination=:1.1 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
   string ":1.1"
method call time=1541964336.106756 sender=:1.0 -> destination=org.freedesktop.DBus serial=3 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RequestName
   string "org.freedesktop.systemd1"
   uint32 7
signal time=1541964336.106880 sender=org.freedesktop.DBus -> destination=(null destination) serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string "org.freedesktop.systemd1"
   string ""
   string ":1.0"
signal time=1541964336.107024 sender=org.freedesktop.DBus -> destination=:1.0 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string "org.freedesktop.systemd1"
method return time=1541964336.107096 sender=org.freedesktop.DBus -> destination=:1.0 serial=5 reply_serial=3
   uint32 1
method call time=1541964336.108116 sender=:1.0 -> destination=org.freedesktop.DBus serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=ListNames
method return time=1541964336.108179 sender=org.freedesktop.DBus -> destination=:1.0 serial=6 reply_serial=4
   array [
      string "org.freedesktop.DBus"
      string "org.freedesktop.systemd1"
      string ":1.0"
   ]

 类似资料:
  • 我正在做一个涉及iOS和蓝牙耳机的个人项目,我遇到了一些问题。我想实现的是一种使用蓝牙的对讲机应用程序。我希望能够连接到蓝牙耳机,并使用内置扬声器播放来自其麦克风的音频。 我已经成功使用蓝牙连接到耳机,但我无法将音频重定向到设备的扬声器。每当我连接并且音频会话首选输入设置为蓝牙耳机时,音频将通过耳机播放,而不是通过扬声器。 如果有人能给我指出正确的方向,甚至给我一些示例代码,那就太棒了。 页(pa

  • 我用Cordova(7.1.0)构建了一个音乐web应用程序,我使用web音频API来管理声音。我的问题是: 如何检查播放机选择的音频源?内置音频与蓝牙音频。 例如,在iPhone上,在玩游戏时,我可以选择通过设备扬声器(内置扬声器)直接播放声音,也可以切换到蓝牙扬声器。当用户从一种模式切换到另一种模式时,如何通过JavaScript进行检查? 我发现了一个关于监听耳机状态(插入或未插入)的Cor

  • 在Raspberry PI上运行一个简单程序。当连接到带有扬声器的显示器时,我可以通过HDMI扬声器听到声音。但是,我想让语音通过蓝牙音箱输出。当我播放一些音频文件时,连接的蓝牙扬声器会播放,但当我运行FreeTTS程序时,声音通过HDMI音频输出,或者当无头且仅连接到蓝牙扬声器时,根本没有输出。我想可能是它试图通过一些默认的音频播放,因为它通过HDMI扬声器播放,即使在音频菜单中选择了蓝牙...

  • 蓝牙是一个使用广泛的无线通信协议,这两年又随着物联网概念进一步推广。我将介绍蓝牙协议,特别是低功耗蓝牙,并用树莓派来实践。树莓派3中内置了蓝牙模块。树莓派通过UART接口和该模块通信。树莓派1和树莓派2中没有内置的蓝牙模块,不过你可以通过USB安装额外的蓝牙适配器。 蓝牙介绍 蓝牙最初由爱立信创制,旨在实现可不同设备之间的无线连接。蓝牙无线通信的频率在2.4GHz附近,和WiFi一样,都属于特高频

  • 所需功能: 它有点像iPhone本机手机应用程序。当有蓝牙/耳机连接到iPhone时,扬声器按钮(通常只有扬声器/手机切换)将显示所有可用的音频输出设备。默认使用蓝牙。用户可以选择其他设备播放声音。 问题: > 如何更新路由并将音频输出设置为所选设备? 请注意,AudioSessionGetProperty AND AudioSessionSetProperty的现有解决方案可能并不理想,因为iO

  • 音频输出到脉冲音频和HDMI? 在我的船上,树莓派3 B巴斯特有两种用途: 它运行Kodi播放通过蓝牙输出到汽车收音机的音乐,该收音机输出到扬声器。(花了两天的时间才让它发生,终于找到了 https://peppe8o.com/fixed-connect-bluetooth-headphones-with-your-raspberry-pi/) 它还播放输出到带有扬声器的HDMI投影仪的电影。 P