Windows蓝牙驱动开发-经典蓝牙音频

devtools/2025/1/19 7:34:12/

本文介绍 Windows 中的蓝牙经典音频功能。 蓝牙经典音频支持通过高级音频分发配置文件(A2DP)和单声道播放和通过免手配置文件(HFP)进行立体声音频播放。 Windows 支持各种音频编解码器和采样率,具体取决于 Windows 版本、耳机的功能以及音频设备的播放或捕获功能的当前使用情况。

术语和先决条件

除了此表中定义的术语之外,本文还引用由 Windows 音频类扩展定义的术语。

c763a21a9f9843afbf565406a6c4f4f7.png

高级音频分发配置文件

A2DP 支持高质量的立体声音频播放,用于常规音频播放。 例如,媒体、视频等。 A2DP 要求音频设备和蓝牙主机支持 SBC 编解码器。 许多音频设备支持更多编解码器来获得更高质量的音频。

Windows 支持 A2DP 的以下音频编解码器,从列出的 OS 版本开始。 Windows 从列表顶部开始,并选择主机和音频设备支持的第一个编解码器进行 A2DP 播放:

c689a359823b4a648e7895a2b2f7de1f.png

**aptX Adaptive 仅在具有兼容 Qualcomm 蓝牙无线电的 Windows 设备上受支持。

A2DP 仅支持从主机到音频设备的音频输出。 当使用音频捕获(例如,使用音频设备中的麦克风进行语音捕获)时,必须改用 HFP。

免提配置文件

HFP 支持并发单声捕获(麦克风)和单声播放,并用于访问蓝牙音频设备的麦克风。 Windows 支持 HFP、窄带(8kHz)和宽带(16kHz)的两种模式,从列出的 OS 版本开始。 Windows 从列表顶部开始,并选择主机和音频设备支持的第一个模式进行 HFP 操作:

179775d3fbd74bd3b1d2cf527946be68.png

** 某些支持宽带的音频设备与所选 Windows 设备中的蓝牙无线电不兼容,导致这些设备恢复为窄带模式。

选择 A2DP 和 HFP 终结点

Windows 10

在 Windows 10 中,当蓝牙经典音频设备与电脑配对时,最多会创建三个音频终结点,具体取决于音频设备是否支持 A2DP 和/或 HFP:

3169e405814f4b0faca27eec6046ae4d.png

当音频流式传输到无手输出或应用程序打开无手麦克风输入时,无论内容是否也流式传输到立体声输出,设备将切换到 HFP 模式,并且丢弃任何流式传输到立体声输出的音频。

需要从音频设备的麦克风(如 VoIP 应用程序)捕获音频的应用程序应配置为使用免手动终结点。

Windows 11

在 Windows 11 中,终结点在 A2DP 和 HFP 之间统一。 如果音频设备支持 HFP,将为设备创建单个输出和单个输入终结点。 如果音频设备仅支持 A2DP,则仅为设备创建输出终结点。

当以下任一方案为 true 时,Windows 会选择 HFP 而不是 A2DP:

应用程序打开输入(麦克风)终结点。
应用程序创建一个输出(播放)流,类别设置为“通信”。
在所有其他情况下,音频输出(播放)到设备使用 A2DP。

Windows 会根据需要自动重新采样当前所选配置文件的音频。 例如,如果在 VoIP 呼叫期间使用麦克风,它将耳机置于 8kHz 或 16kHz 的 HFP 模式,并且另一个应用程序将音频播放到 48kHz 的同一设备,则会重新采样声音以匹配 HFP 终结点。

配置文件选择更改会根据麦克风使用状态自动发生。 例如,如果媒体正在播放,并且设备处于 A2DP 模式,然后打开麦克风,则设备将切换到 HFP 模式。 如果媒体在麦克风关闭后继续播放,设备会立即切换回 A2DP。

 


http://www.ppmy.cn/devtools/151771.html

相关文章

神经网络基础-正则化方法

文章目录 1. 什么是正则化2. 正则化方法2.1 Dropout正则化2.2 批量归一化(BN层) 学习目标: 知道正则化的作用掌握随机失活 DropOut 策略知道 BN 层的作用 1. 什么是正则化 在设计机器学习算法时希望在新样本上的泛化能力强。许多机器学习算法都采用相关的策略来减小…

网格参数化,Mesh parameterization processing

目录 前言1.Barycentric mappingMapping 步骤实例 2.Laplace mapping3.Laplace improvement4.Coding 前言 多边形网格的类型多种多样。本文所实现的网格多边形参数化是指三角多边形。 不同的表示被用来编码三维物体的几何形状。选择一种表示方式取决于在上游的获取过程和下游的…

sqlfather笔记

这里简单记录写学习鱼皮sqlfather项目的笔记,以供以后学习。 运行 将前后端项目clone到本地后,修改对应配置文件运行项目。 后端 1.配置好mysql后运行这个sql文件建立对应的表。 2.修改数据库密码 3.修改完后运行启动类即可 4. 启动结果 5.查看A…

2.3 表示学习与嵌入(Embedding):理解和优化数据表示

表示学习与嵌入(Embedding):理解和优化数据表示 在计算机科学和人工智能领域,表示学习(Representation Learning)和嵌入(Embedding)是两项关键技术。它们通过将复杂的数据转化为更易于计算机处理的形式,帮助我们提高机器学习模型的性能,特别是在处理高维复杂数据时,…

【学习总结|DAY032】后端Web实战:登录认证

在 Web 后端开发中,登录认证是保障系统安全和用户数据隐私的关键环节。本文将结合实际开发案例,深入探讨登录功能与登录校验的实现思路和技术细节,希望能帮助读者更好地掌握这一重要知识点。 一、登录功能实现 1.1 思路分析 登录功能的核心…

抢十八游戏

前言 我国民国一直流传着一个名叫“抢十八”的抢数游戏:参与游戏的两人从1开始轮流报数,每次至少报1个数,最多报2个数,每人报的每个数不得与自已报过的或对方报过的重复,也不得跳过任何一个数。谁先报到18&#xff0c…

使用python+pytest+requests完成自动化接口测试(包括html报告的生成和日志记录以及层级的封装(包括调用Json文件))

一、API的选择 我们进行接口测试需要API文档和系统,我们选择JSONPlaceholder免费API,因为它是一个非常适合进行接口测试、API 测试和学习的工具。它免费、易于使用、无需认证,能够快速帮助开发者模拟常见的接口操作(增、删、改、…

【Python】使用 selenium模拟敲键盘输入的方法汇总

我在使用selenium弄模拟登陆,需要模拟输入账号和密码,往往都使用 selenium 的send_keys 函数。 可是我昨天在写测试的时候,有时候有些网站,居然使用send_keys 函数,无法在输入框里输入文字! 在Python中&a…