windows蓝牙驱动开发-BLE音频(二)

打印 上一主题 下一主题

主题 842|帖子 842|积分 2526

详细设计
音频格式要求
音频帧持续时间
蓝牙 LE 音频配置文件允许实现支持音频帧持续时间为 7.5 毫秒或 10 毫秒的音频流式处置惩罚。 Windows 要求 IHV 提供的编解码器支持这两个帧持续时间,以确保与蓝牙 LE 音频配件装备的互操作性,并与连接到体系的其他蓝牙 LE 装备保持质量共存。
信号处置惩罚模式界说
蓝牙 LE 音频支持各种流式处置惩罚格式,从而支持不同的用户场景。 BAP 和 TMAP 规范界说了认证必须逼迫支持的格式。 Windows 会应用 音频信号处置惩罚模式,将要利用的格式与体系正在执行的方案相干联。 支持蓝牙 LE 音频的音频驱动步伐应指示对下表中的信号处置惩罚模式和格式的支持。 此外,蓝牙 LE 音频不支持原始信号处置惩罚模式,因此音频驱动步伐不应为此模式播发任何受支持的格式。
呈现流音频信号处置惩罚模式
蓝牙 LE 音频要求为以下信号处置惩罚模式声明呈现音频格式:
默认 (AUDIO_SIGNALPROCESSINGMODE_DEFAULT)
此模式用于单向呈现场景,比方音乐播放、关照和视频游戏音频。
通信 (AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS)
此模式用于双向场景,比方语音呼唤。
以下各表列出了每种用例的格式和信号处置惩罚模式。 音频格式按优先顺序从高到低排列。
连接到立体声装备或装备协调集时的体系声音、音乐播放和视频游戏音频
信号处置惩罚模式:默认

连接到协调集的单个成员(单个耳塞或助听器)时的体系声音、音乐播放和视频游戏音频
信号处置惩罚模式:默认

具有语音谈天的呈现语音录制器、VOIP 呼唤或视频游戏音频
信号处置惩罚模式:通信

捕获流音频信号处置惩罚模式
蓝牙 LE 音频要求为默认 (AUDIO_SIGNALPROCESSINGMODE_DEFAULT) 信号处置惩罚模式声明捕获音频格式。 支持的捕获格式列表如下表所示。
音频格式按优先顺序从高到低排列。
具有语音谈天的捕获语音录制器、VOIP 呼唤或视频游戏音频
信号处置惩罚模式:默认

接口
音频闭幕点模板绑定 ID
音频驱动步伐的 ACX 线路工厂利用此 ID 来了解何时创建了配对蓝牙装备的 ACX 线路。
以下组件 ID 用于创建蓝牙 LE 音频线路:
  1. // {5C52FDB5-722A-4AB7-A342-70163B7E9B5C}
  2. DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_RENDER_COMPONENT_ID,
  3. 0x5c52fdb5, 0x722a, 0x4ab7, 0xa3, 0x42, 0x70, 0x16, 0x3b, 0x7e, 0x9b, 0x5c);
  4. // {1DFF2EE3-AE89-441C-BDE3-24F885C55DF8}
  5. DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_CAPTURE_COMPONENT_ID,
  6. 0x1dff2ee3, 0xae89, 0x441c, 0xbd, 0xe3, 0x24, 0xf8, 0x85, 0xc5, 0x5d, 0xf8);
复制代码
蓝牙 LE 音频支持接口
音频驱动步伐堆栈利用该接口来指示它可用于流式处置惩罚蓝牙 LE 音频。 Windows 蓝牙音频服务级别会监督此接口,并比及发布后再启用蓝牙 LE 音频支持。
以下接口 ID 用于发布蓝牙 LE 音频支持接口:
  1. // {BA02FA1B-0FD0-4A0F-A748-4FAE2E2D2F67}
  2. DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_SUPPORT_INTERFACE,
  3. 0xba02fa1b, 0x0fd0, 0x4a0f, 0xa7, 0x48, 0x4f, 0xae, 0x2e, 0x2d, 0x2f, 0x67);
复制代码
音量和静音
假如流式处置惩罚驱动步伐需要音频引擎,IHV ACX 流式处置惩罚线路应仅包含音量和静音元素。 利用音频引擎时,必须设置配置标记,如下所示:
  1. ACX_AUDIOENGINE_CONFIG audioEngineCfg;
  2. ACX_AUDIOENGINE_CONFIG_INIT(&audioEngineCfg);
  3. audioEngineCfg.Flags |= AcxAudioEngineConfigVolumeSecondary; // Use this control only if endpoint doesn't have one.
  4. audioEngineCfg.MuteElement = muteElement;
  5. audioEngineCfg.Flags |= AcxAudioEngineConfigMuteSecondary; // Use this control only if endpoint doesn't have one.
  6. audioEngineCfg.PeakMeterElement = peakmeterElement;
  7.    
  8. audioEngineCfg.Flags |= AcxAudioEngineConfigPeakMeterSecondary; // Use this control only if endpoint doesn't have one.
复制代码
只有如许,蓝牙 LE 音频闭幕点才能利用蓝牙 SIG 界说的音量和麦克风控制配置文件更改单播音频闭幕点的音量和静音。
假如长途蓝牙 LE 音频装备不支持音量或麦克风控制服务,大概为广播音频创建了闭幕点,则音频引擎中的音量和静音元素应充当回退来处置惩罚来自音频体系的更改请求。 Windows 音频体系会处置惩罚对音量和静音的更改。 假如没有音频引擎,则要么长途装备不支持音量或麦克风服务,要么音频闭幕点用于广播音频。
蓝牙 LE 和经典音频共存
Windows 应确保只有经典音频或 LE 音频适用于支持这两种技能的配对蓝牙音频装备。 假如 LE 音频处于活动状态,则禁用长途装备的 A2DP 和 HFP 的边带 DDI,并为 LE 音频闭幕点创建配置文件线路。 假如经典音频处于活动状态,则启用长途装备的 A2DP 和 HFP 的边带 DDI,并且不会为 LE 音频闭幕点创建配置文件线路。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

慢吞云雾缓吐愁

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表