蓝牙技术 A2DP AVRCP BlueZ
BlueZ 做为 linux 标准的协议栈,提供非常多的 profile ,各种的支持,ble , 蓝牙网络,文件传输,a2dp 音频传输。
A2DP——Advanced Audio Distribution Profile A2DP Sink 输入设备,如蓝牙耳机。A2DP Source 输出设备,如手机。
音频压缩格式支持:其中SBC是必须支持的,可选的格式有MPEG-1, MPEG-2, MPEG-4, AAC and ATRC, 另外也支持厂商扩展的格式,比如高质量的音频编码格式apt-X。
BlueZ 编译和安装不是重点,可以看看 https://wiki.beyondlogic.org/index.php?title=Cross_Compiling_BlueZ_Bluetooth_tools_for_ARM
其实也可以在 虚拟机的 ubuntu 上进行验证,这里使用 raspberry Pi 3b+ 自带 WIFI + BT 功能,和一个 CSR8510 的蓝牙usb ,win10 ubuntu 系统都有驱动。
树莓派 3b+ 这个比较新,软件包是自带的 bluez 是 5.43 。
PulseAuido 提供,混音,音频路由 route ,可以让应用,同时打开多个节点。
d-bus 提供,ipc 进程间通讯。
bluez 还依赖 glib2.0 , glib2.0 是 gtk 的一个项目。
glib2.0 提供很多实用的功能,事件,线程,定时器等,很多功能。
hciconfig 查看蓝牙适配器 * 是打码。
hci1: Type: Primary Bus: UART
BD Address: ********* ACL MTU: : SCO MTU: :
UP RUNNING
RX bytes: acl: sco: events: errors:
TX bytes: acl: sco: commands: errors: hci0: Type: Primary Bus: USB
BD Address: ********* ACL MTU: : SCO MTU: :
UP RUNNING
RX bytes: acl: sco: events: errors:
TX bytes: acl: sco: commands: errors:
新的工具 bluetoothctl
info *:*:*:*:*:*
Device *:*:*:*:*:* (public)
Name: 小米手机
Alias: 小米手机
Class: 0x005a020c
Icon: phone
Paired: no
Trusted: no
Blocked: no
Connected: no
LegacyPairing: no
UUID: OBEX Object Push (----00805f9b34fb)
UUID: Audio Source (0000110a----00805f9b34fb)
UUID: A/V Remote Control Target (0000110c----00805f9b34fb)
UUID: Headset AG (----00805f9b34fb)
UUID: PANU (----00805f9b34fb)
UUID: NAP (----00805f9b34fb)
UUID: Handsfree Audio Gateway (0000111f----00805f9b34fb)
UUID: Phonebook Access Server (0000112f----00805f9b34fb)
UUID: PnP Information (----00805f9b34fb)
UUID: Message Access Server (----00805f9b34fb) info *:*:*:*:*:*
Device *:*:*:*:*:* (public)
Name: 坚果 Pro
Alias: 坚果 Pro
Class: 0x005a020c
Icon: phone
Paired: no
Trusted: no
Blocked: no
Connected: no
LegacyPairing: no
UUID: OBEX Object Push (----00805f9b34fb)
UUID: Audio Source (0000110a----00805f9b34fb)
UUID: A/V Remote Control Target (0000110c----00805f9b34fb)
UUID: A/V Remote Control (0000110e----00805f9b34fb)
UUID: Headset AG (----00805f9b34fb)
UUID: Handsfree Audio Gateway (0000111f----00805f9b34fb)
UUID: SIM Access (0000112d----00805f9b34fb)
UUID: Phonebook Access Server (0000112f----00805f9b34fb)
UUID: PnP Information (----00805f9b34fb)
可以看出来,2个手机的,Class 是一样的,提供的服务也是一样的 UUID
几个重要的问题
1,如何配对
2,接收到的数码如何解码
3,如何播放
蓝牙技术 A2DP AVRCP BlueZ的更多相关文章
- Android 蓝牙技术 实现终端间数据传输
蓝牙技术在智能硬件方面有很多用武之地,今天我就为大家分享一下蓝牙技术在Android系统下的使用方法技巧.蓝牙是一种短距离的无线通信技术标准,蓝牙协议分为4层,即核心协议层.电缆替代协议层.电话控制协 ...
- 树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)
若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110940484长期持续带来更多项目与技术分享, ...
- 蓝牙技术BlueTooth
转载网址:http://blog.csdn.net/dxdxsmy/article/details/7790568 蓝牙核心架构概念的理解请参考上面的网址.
- android蓝牙技术
配置权限 <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permiss ...
- 安卓蓝牙技术Bluetooth使用流程(Bluetooth详解)
一:蓝牙设备之间的通讯首要包含了四个进程 设置蓝牙设备 寻觅局域网内也许或许匹配的设备 衔接设备 设备之间的数据传输 二:详细编程完结 1. 发动蓝牙功用 首要经过调用静态办法getDefaultAd ...
- 蓝牙技术(BlueTooth)——(一)
一,概述 蓝牙是一种短距离的无线通信技术标准. 蓝牙协议分为4层,即核心协议层,电缆替代协议层,电话控制协议层,和 采纳的其它协议层. 这4中协议中最重要的是核心协议.蓝牙的核心协议包括基带 ...
- Android蓝牙技术Bluetooth使用流程(具体解释)
一:蓝牙设备之间的通信主要包含了四个步骤 设置蓝牙设备 寻找局域网内可能或者匹配的设备 连接设备 设备之间的传输数据 二:详细编程实现 1. 启动蓝牙功能 首先通过调用静态方法getDefaultAd ...
- BLK-MD-BC04-B蓝牙模块开发说明
BLK-MD-BC04-B蓝牙模块开发说明 日期:2011-9-24 浏览次数:4178 BLK-MD-BC04-B蓝牙通信模块, BLK-MD-BC04-B蓝牙通信模块 为本公司自主开发的智 ...
- 蓝牙协议 HFP,HSP,A2DP,A2DP_CT,A2DP_TG,AVRCP,OPP,PBAP,SPP,FTP,TP,DTMF,DUN,SDP
简介: HSP(手机规格)– 提供手机(移动电话)与耳机之间通信所需的基本功能. HFP(免提规格)– 在 HSP 的基础上增加了某些扩展功能,原来只用于从固定车载免提装置来控制移动电话. A2DP( ...
随机推荐
- 十、RPC(远程过程调用)
相关概念 RPC,是Remote Procedure Call的简称,即远程过程调用.它是一种通过网络从远程计算机上请求服务,而不需要了解底层网络的技术.RPC的主要功用是让构建分布式计算更容易,在提 ...
- SQL中的一些关键字用法
1.where 条件筛选结果 select * from `表名` where `列名`='value' 上诉语句的意思是在某表中查询某列名等于某特定值得所有列 2.Like 模糊查询 select ...
- flink 基本原理
state状态操作 https://ci.apache.org/projects/flink/flink-docs-release-1.8/concepts/programming-model.htm ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-封装mock(9)
封装mock # -*- coding: utf-8 -*- # @Time : 2020/2/12 8:51 # @File : mock_demo_9.py # @Author: Hero Liu ...
- [洛谷P3403] 跳楼机
题目传送门 套路题,同余最短路. 先只考虑y.z进行连边,再在mod x的意义下进行计算. 这里的“距离”dis[i]指的是,在所有满足a mod x=i的a里,能到达的最小的a是多少. 显然只要能到 ...
- [洛谷P4299] 首都
题目传送门 还是维护子树信息. 但是这里多了一个找重心的操作. 这里有一个关于树重心的结论,据说可以用反证法证明.反正我不会证 就是:新的重心一定在原来两个重心之间的那条树链上. 这样我们逐步缩小搜索 ...
- SpringBoot + JPA + mariadb
SpringBoot + JPA + MariaDB 源码:https://github.com/ldl326308/LiveGreen-SpringBoot.git JPA持久层方法名命名规则:
- Python---2文本编辑器
1.介绍 在Python的交互式命令行写程序,好处是一下就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍. 所以,实际开发的时候,我们总是使用一个文本编辑器来写代码,写完了,保存为一个文 ...
- webpack进阶之loader篇
webpack的loaders是一大特色,也是很重要的一部分.这遍博客我将分类讲解一些常用的laoder 一.loaders之 预处理 css-loader 处理css中路径引用等问题 style-l ...
- ActiveMQ学习总结(一)
自己写的网上商城项目中使用了ActiveMQ,虽然相比于RabbitMQ,kafka,RocketMQ等相比,ActiveMQ可能性能方面不是最好的选择,不过消息队列其实原理区别不大,这里对学过的关于 ...