首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >树莓Pi3,蓝莓连接但没有声音输出的蓝牙扬声器?

树莓Pi3,蓝莓连接但没有声音输出的蓝牙扬声器?
EN

Stack Overflow用户
提问于 2018-11-10 21:37:41
回答 1查看 7.9K关注 0票数 0

摘要:所有的东西都连接在一起,看起来很正常,但是扬声器里没有声音--如何诊断或修复?

我正在尝试播放从我的树莓Pi 3到蓝牙扬声器的声音,但这是行不通的。

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

扬声器音量不是静音的,其他设备可以连接到它并通过它播放。检查alsamixer确认音频不是静音。

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

代码语言:javascript
复制
$ 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拉伸,2018-10-09映像(蓝伊莱萨v5.43安装在盒子外)
  • bluez v5.49下载、构建和安装(无错误)
  • 编辑了/etc/dbus-1/system.d/bluetooth.conf,添加到root元素中的行如下:
    • <allow send_interface="org.bluez.ThermometerWatcher1"/>
    • <allow send_interface="org.bluez.HeartRateWatcher1"/>
    • <allow send_interface="org.bluez.CyclingSpeedWatcher1"/>

  • 下面还添加到顶级busconfig元素:
    • <policy group="bluetooth"><allow send_destination="org.bluez"/></policy>

  • pi用户添加到蓝牙组

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

其他事情(可能与此无关,但包括完整性)

  • pi访问是通过SSH (它是无头的)
  • 在启动pi时,sudo systemctl status blueto*显示了蓝牙服务上的一条错误消息:Failed to set privacy: Rejected (0x0b),这显然是一个与引导相关的问题(链接),它是通过使用systemctl在引导后手动重新启动蓝牙服务来修复的(丑陋,但目前还可以作为解决办法)。
  • 在dmesg、user.log或boot.log中没有可疑的消息
  • 但是,在daemon.log中,它与上面的aplay命令的执行相关(但是我用相同的控制台输出多次尝试了该命令,它有时只生成这些命令):

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2018-11-11 19:43:37

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

代码语言:javascript
复制
aplay /usr/share/sound/alsa/Front_Center.wav

1)建立SD卡图像

  • 使用蚀刻器燃烧2018-10-09-Raspbian-tench.img
  • 触摸/引导/ssh
  • 添加一个适当的/boot/wpa_supplicant.conf文件
  • 编辑/rootfs/etc/主机名

2) SSH -拷贝id从主机到pi,以方便SSH。

3)在pi上设置软件:

  • passwd
  • sudo apt update; sudo apt dist-upgrade
  • sudo apt install vim git screen htop rpi-update
  • sudo apt autoremove
  • sudo systemctl set-default multi-user.target # don't start X windows on boot
  • sudo BRANCH=next rpi-update
  • sudo reboot

4)更新bluez

  • sudo apt install libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev
  • wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.50.tar.xz tar -xf bluez-5.50.tar.xz‘
  • cd bluez-5.50/
  • ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-experimental
  • make -j4
  • sudo make install
  • sudo cp /etc/dbus-1/system.d/bluetooth.conf /etc/dbus-1/system.d/bluetooth.conf.bak,然后编辑:
    • 添加到root<allow send_interface="org.bluez.ThermometerWatcher1"/><allow send_interface="org.bluez.HeartRateWatcher1"/><allow send_interface="org.bluez.CyclingSpeedWatcher1"/>
    • 添加busconfig<policy group="bluetooth"><allow send_destination="org.bluez"/></policy>的新子级

5)让蓝牙工作

  • sudo adduser pi bluetooth
  • sudo reboot
  • 蓝宝石:scan on
  • 蓝宝石:trust 04:52:C7:5A:3B:A1
  • 蓝宝石:connect 04:52:C7:5A:3B:A1
  • aplay -D bluealsa:HCI=hci0,DEV=04:52:C7:5A:3B:A1,PROFILE=a2dp /usr/share/sounds/alsa/Front_Center.wav # test it works at all

6)通过创建以下/etc/asound.conf文件,使蓝牙在不指定设备的情况下工作:

代码语言:javascript
复制
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监视器输出:

代码语言:javascript
复制
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"
   ]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53243651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档