PulseAudio under the hoodTable of contents Preface About PulseAudio High-level components Key abstractions D-Bus API C API Protocols and networking Device drivers Sound processing Sample cache Stream management Time management Power saving Automatic setup and routing Desktop integrations Compatibility layers Server internals Module list GUI tools Command line tools Configuration Portability Example setups Example clients and modules Critique Preface I’m working on the Roc Toolkit open-source project, a development kit for realtime audio streaming over the network.https://gavv.github.io/articles/pulseaudio-under-the-hood/

Bluetooth

Android好用的蓝牙模块封装_Android好用的蓝牙模块封装

https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Bluetooth/

蓝牙模块如何选型,应该注意哪些方面 - 知乎蓝牙模块,是一种集成了蓝牙功能的PCBA板,一般是由PCB板、芯片、外围元器件构成,是一种半成品,用于代替数据线缆来进行小范围的短距离无线通讯。 蓝牙支持点对点以及点对多点的通信,以无线方式将家庭或办公室中…

Android好用的蓝牙模块封装_数据传输_02

https://zhuanlan.zhihu.com/p/41006705

A2DP :Advanced Audio Distribution Profile。高质量音频数据传输的协议,其定义里了传送单声道或立体声等高质量音频(区别于蓝牙SCO链路上传输的普通语音)信息的协议和过程。A2DP的典型应用是将音乐播放器的音频数据发送到耳机或音箱。

A2DP 定义了两种角色:

Audio Source :(音频源) 音频的输入端对音频数据进行编码,发送到Sink端。
Audio Sink :     (音频接收器) 接收到音频数据后,进行解码操作还原出音频。

蓝牙技术联盟(SIG)后续发布的蓝牙4.1/4.2/5.0,都是同时包含低功耗蓝牙和经典蓝牙的。

从蓝牙4.0 之后,蓝牙才分经典蓝牙和低功耗蓝牙

所以大家开发蓝牙应用的时候,一定要搞清楚自己是要开发低功耗蓝牙应用还是经典蓝牙应用,两者的应用场景是不同的。一般而言,

经典蓝牙主要应用在蓝牙电话接听,蓝牙耳机,蓝牙音箱等场合,经典蓝牙模块(BT):泛指支持蓝牙协议在4.0以下的模块,一般用于数据量比较大的传输,如:语音、音乐等较高数据量传输。经典蓝牙模块可再细分为:传统蓝牙模块(BR)和高速蓝牙模块(EDR)

低功耗蓝牙应用在可穿戴设备,IoT智能设备,健身设备,蓝牙鼠标键盘等电池供电场合。是指支持蓝牙协议4.0或更高的模块,也称为BLE模块,其最重要的特性是支持省电,以不需占用太多带宽的设备连接为主

 基于CSR8670 4.0双模蓝牙模块,包含了A2DP(音乐播放),AVRCP(流媒体控制及音乐封面

传输),HFP(免提通话),SPP(数据传输),PBAPC(电话本同步),HID(鼠标),BLE 

DataTrans(低功耗模式下的小数据传输)等协议

Android好用的蓝牙模块封装_经验分享_03

Android好用的蓝牙模块封装_经验分享_04

 

Android好用的蓝牙模块封装_音视频_05

蓝牙协议 HFP,HSP,A2DP,AVRCP,OPP,PBAP

简介:

HSP(手机规格)– 提供手机(移动电话)与耳机之间通信所需的基本功能。

HFP(免提规格)– 在 HSP 的基础上增加了某些扩展功能,原来只用于从固定车载免提装置来控制移动电话。

A2DP(高级音频传送规格)– 允许传输立体声音频信号。 (相比用于 HSP 和 HFP 的单声道加密,质量要好得

多)

AVRCP(音频/视频遥控规格)–用于从控制器(如立体声耳机)向目标设备(如装有 Media Player 的电脑)发

送命令(如前跳、暂停和播放)。

详细介绍:

HFP

HFP(Hands-freeProfile),让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否

支持。

HSP

HSP 描述了Bluetooth 耳机如何与计算机或其它Bluetooth 设备(如手机)通信。连接和配置好后,耳机可以作为远程设备的音频输入和输出接口。

这是最常用的配置,为当前流行支持蓝牙耳机与移动电话使用。它依赖于在64千比特编码的音频/s的CVSD的或PCM以及AT命令从GSM07.07的一个子集,包括环的能力最小的控制,接听来电,挂断以及音量调整。

典型的使用情景是使用无线耳机与手机进行连接。

可能会使用HSP的若干设备类型:耳机、手机、PDA、个人电脑、手提电脑。

A2DP

A2DP全名是AdvancedAudio Distribution Profile蓝牙音频传输模型协定!A2DP是能够采用耳机内的芯片来堆栈数据,达到声音的高

清晰度。有A2DP的耳机就是蓝牙立体声耳机。声音能达到44.1kHz,一般的耳机只能达到8kHz。如果手机支持蓝牙,只要装

载A2DP协议,就能使用A2DP耳机了。还有消费者看到技术参数提到蓝牙V1.0V1.1 V1.2 V2.0——这些是指蓝牙的技术版本,是指

通过蓝牙传输的速度,他们是否支持A2DP具体要看蓝牙产品制造商是否使用这个技术

AVRCP

AVRCP(Audio/VideoRemote Control Profile),也就是音频/视频远程控制规范。

AVRCP设计用于提供控制TV、Hi-Fi设备等的标准接口。此配置文件用于许可单个远程控制设备(或其它设备)控制所有用户可以接

入的A/V设备。它可以与A2DP或VDP配合使用。

AVRCP定义了如何控制流媒体的特征。包括暂停、停止、启动重放、音量控制及其它类型的远程控制操作。AVRCP定义了两个角

色,即控制器和目标设备。控制器通常为远程控制设备,而目标设备为特征可以更改的设备。在AVRCP中,控制器将检测到的用户

操作翻译为A/V控制信号,然后再将其传输至远程Bluetooth设备。对于“随身听”类型的媒体播放器,控制设备可以是允许跳过音轨的

耳机,而目标设备则是实际的播放器。常规红外遥控器的可用功能可以在此协议中实现。

AVRCP协议规定了AV/C数字接口命令集(AV/C命令集,由1394行业协会定义)的应用范围,实现了简化实施和易操作性。此协议

为控制消息采用了AV/C设备模式和命令格式,这些消息可以通过音频/视频控制传输协议(AVCTP)传输。

OPP

蓝牙通信程序部分需采用用于设备之间传输数据对象OPP Profile: Object Push Profile由于OPP profile又细分为OPPC (client)端和

OPPS(server)端profile,这两个profile区别在于只有client端可以发起数据传输的过程,但是附件设备与手机通信的情景中,既有手机

发起数据传输请求也有设备侧发起传输请求的需要,所以要在设备中实现OPPC和OPPS两个profile。

PBAP

电话号码簿访问协议(PhonebookAccess Profile)