杰理蓝牙耳机开发--LE Audio与游戏耳机应用

杰理蓝牙耳机开发 LE Audio与游戏耳机应用

最近有朋友后台私信问我:蓝牙耳机的延时普遍在100ms左右,玩游戏时枪声和画面不同步,体验感很差,咨询有没有办法把延时压得更低,以满足游戏爱好者的需求。这种情况,前几年蓝牙SIG官方推出的LE Audio技术便可以派上用场了。杰理蓝牙SDK通过使用LE Audio中的CIS(Connected Isochronous Stream)链路,可以实现最低20ms左右的总延时(从DONGLE采样到耳机输出时间),完全可以满足游戏耳机严苛的低延时需求,本篇文章对LE Audio技术进行简单介绍,并介绍如何使用杰理SDK中的CIS链路做游戏耳机开发。

LE Audio简单介绍

经典蓝牙与LE Audio对比

LE Audio是基于蓝牙5.2及以后版本的下一代音频技术,核心是低功耗、高音质、多连接、低延时,并引入了广播音频这个独立的新功能,下面是经典蓝牙音频与LE Audio的关键对比。

CIS技术与游戏耳机应用

CIS(Connected Isochronous Stream)是LE Audio中的一种同步音频传输方式,适用于点对点之间的低延时音频传输。

在杰理SDK推荐的游戏耳机开发场景中,正是运用了CIS点对点低延时音频传输的特性,这里通常使用JL_UNICAST方案(杰理自研的CIS应用层协议),Dongle(蓝牙转换头)与上位机(手机电脑等支持UAC的设备)之间使用USB Audio的方式传输音频数据,再通过Dongle与耳机之间建立的CIS链路来实现音频数据的低延时传输。耳机与Dongle之间链路关系如下图。

杰理SDK工程配置

目前杰理JL701N、JL708N以及JL710N芯片支持蓝牙耳机+DONGLE的功能,杰理SDK中对于dongle所使用的芯片选型是有限制的,不能随便选用型号,需要SDK与封装配合使用。

  • 701N系列dongle封装推荐选用JL7016M/JL7018F
  • 708N系列dongle封装选用JL7086E
  • 710N系列dongle封装选用JL7103E/AC7103E
    以下以JL708N芯片为例,介绍如何配置LE_AUDIO_JL_UNICAST_SINK工程(游戏耳机方案)

耳机工程配置

  1. 创建工程

    目前最新的JL708N蓝牙耳机SDK为V3.5.4版本,这里直接创建并对其进行配置

  2. 打开BLE开关

    LE Audio本质上还是使用的是BLE功能,所以这里需要把蓝牙配置中的BLE总开关使能。

  3. LE AUDIO配置

    在"LE_AUDIO"配置中,选择勾选使能LE_AUDIO_JL_UNICAST_SINK_EN,JL_UNICAST_SINK便是杰理自研的CIS应用层协议

  4. 音频流程配置

    "蓝牙音乐"或"媒体"导航栏处的音频流程图选择LE_Audio的音频流程图

    "蓝牙通话"的音频流程图也选择LE_Aduio这一组

    最后使能LE Audio流程图,这样才会与上面的LE Audio相关音频流程建立音频流程连接,这样之后,耳机LE Audio整个音频流程就配置完成了。

Dongle工程配置

  1. 创建dongle项目工程
    JL701N、JL708N以及JL710N系列芯片的都可以使用创建这个工程,可以在"封装"选项选择对应使用的杰理芯片。
  2. 蓝牙EDR配置
    如果Dongle项目只需要CIS,则可以把经典蓝牙EDR关闭,可以在蓝牙配置->EDR(经典蓝牙),右边选择功能关闭,如果项目中Dongle既需要CIS又需要经典蓝牙,可以通过按键来切换经典蓝牙模式和CIS模式。
  3. 配对名设置
    修改Dongle项目的"LE_AUDIO配置"->"UNICAST配置"->"配对名",需要与耳机工程的经典蓝牙名一致,这样才能与蓝牙耳机配对成功
  4. 音频流程图配置
    耳机只支持CIS单链接,选择默认分组即可

以上基础配置完成,Dongle与耳机开机后便可以自动连接上了。就按照以上默认的配置,实测延时大概可以在40ms左右,后续可以再通过修改帧长、播放延时以及音效节点的优化,杰理官方可以测试到20ms以下的总延时。

相关推荐
嵌入式-老费4 小时前
esp32开发与应用(添加数据分区)
单片机·嵌入式硬件
吃好睡好便好4 小时前
MATLAB中图像的读取、写入和显示
开发语言·图像处理·学习·计算机视觉·matlab
~kiss~4 小时前
大模型中的强化学习算法和对齐算法的区别
学习
MartinYeung54 小时前
[论文学习]InjecAgent:工具集成大语言模型智能体的间接提示注入基准测试
网络·学习·语言模型
sean9085 小时前
Vim 学习 - 快速删除/修改
学习·vim
依然范特东5 小时前
强化学习笔记1--基础概念
笔记
小黄人软件5 小时前
如何解决不想学、学不会、学不进去,吸收内化不了学的东西,怎么办?如何真正建立“知识内化系统“?不输出,不学习
学习
个 人 练 习 生6 小时前
strcmp与strstr函数的模拟实现
c语言·开发语言·经验分享·学习·程序人生
晓梦林6 小时前
[ACTF2020 新生赛]BackupFile学习笔记
android·笔记·学习
2601_963870177 小时前
【计算机毕业设计】基于Spring Boot的社区老年大学课程报名与学习系统的设计与实现
java·spring boot·学习