前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全志T113芯片蓝牙音乐播放失败如何解决?

全志T113芯片蓝牙音乐播放失败如何解决?

作者头像
阿志小管家
发布2024-02-02 17:13:30
1640
发布2024-02-02 17:13:30
举报
文章被收录于专栏:全志嵌入式那些事

1.主题

T113-S3 蓝牙音乐播放失败问题

2.问题背景

硬件:T113 + XR829 软件:Linux(非Tina)

3.问题描述

3.1复现步骤
代码语言:javascript
复制
#驱动路径要根据固件实际路径
insmod /lib/modules/5.4.61±ab179/xradio_btlpm.ko

等驱动安装完再执行后续操作
echo 0 > /sys/class/rfkill/rfkill0/state
sleep 1
echo 1 > /sys/class/rfkill/rfkill0/state
sleep 1

hciattach -n ttyS1 xradio &

hciconfig hci0 up
hciconfig hci0 piscan

#启动蓝牙协议栈
bluetoothd -n &

#设定本机为播放源
bluealsa -p a2dp-source &

#进入蓝牙控制终端
bluetoothctl

#扫描周边蓝牙设备
scan on
#若例表中已找到设备则手动停止扫描
scan off
#连接蓝牙音箱
connect <蓝牙音箱MAC>

连接成功提示Device 30:21:23:6F:18:E2 Connected: yes

代码语言:javascript
复制
#退出bluetoothctl
exit

#播放音乐aplay -D bluealsa:DEV=音箱mac 音乐文件路径
aplay -D bluealsa:DEV=30:21:23:6F:18:E2 /a.wav &
3.2具体表现

蓝牙音乐播放失败,并且出现蓝牙设备断开现象

4.问题分析

1、对比R328等Tina平台,以上的验证方法没有问题,bluez 和 bluealsa版本也一致,因此判断不是操作或者版本本身的问题。 2、由于蓝牙已经断开,查看进程情况,通过PS命令,看出Bluetoothd进程还在,但是bluealsa进程已经退出。 3、加打印分析bluealsa退出点,经过验证是在SBC编码环节。 4、排查SBC编码的代码,发现程序在某个点会崩溃。 5、在网上查找相关案例,疑似与编译配置有关系。

5.根本原因

与SBC编译的配置有关系,在当前的编译工具链环境下,需要打开 --enable-high-precision配置

6.解决办法

如下修改配置:

  • 修改sbc_primitives.h
代码语言:javascript
复制
diff --git a/sbc/sbc_primitives.h b/sbc/sbc_primitives.h
index e01c957..b060484 100644
--- a/sbc/sbc_primitives.h
+++ b/sbc/sbc_primitives.h
@@ -27,6 +27,10 @@
 #ifndef __SBC_PRIMITIVES_H
 #define __SBC_PRIMITIVES_H

+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
 #define SCALE_OUT_BITS 15
 #define SBC_X_BUFFER_SIZE 328
  • 在sbc.mk中增加
代码语言:javascript
复制
SBC_CONF_OPTS = --enable-high-precision
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.主题
  • 2.问题背景
  • 3.问题描述
    • 3.1复现步骤
      • 3.2具体表现
      • 4.问题分析
      • 5.根本原因
      • 6.解决办法
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档