当今这个音视频无处不在的时代,音频跟踪会话ID(AudioTrack Session ID)是个很重要的参数,可以用来实现音频相关的一些特效。接下来的内容我们就探究如何在安卓蓝牙系统中获取该id。

熟悉蓝牙音乐播放流程的同学都了解蓝牙音乐AVDTP的控制流与音频流以及AVRCP是如何作用的,以如下的交互图简单介绍下:

AVDTP连接阶段分为四步:

1、 发现对端支持的编码方式有哪几种

2、 获取每种编码方式的参数

3、 双方协商确定一个最优的编码方式

4、 建立该编码方式的AVDTP连接

音频播放过程中只要创建的audiotrack不变则对应的session id就会保持不变。播放蓝牙音乐也是这样。那蓝牙音乐对应的audiotrack session id从哪儿获取呢?

创建audiotrack都会生成对应的session id,那问题就简单多了,蓝牙音乐播放过程中audiotrack在哪儿被创建的?

蓝牙音乐播放分为source、sink两端,source一般为音频流输出端,sink接收音频流方。这篇文章主要是已sink端来讲解蓝牙音频播放流程。Sink方(蓝牙耳机、音响、车载等)的蓝牙芯片接收到音频流后通过HCI送到蓝牙协议栈,该协议栈中直接通过audio track送入安卓音频系统播放音乐。

结合蓝牙协议栈的代码可以快速找到audio track的创建处为:BtifAvrcpAudioTrackCreate(),通过sp track可以实现session id的获取。

那如何将该id送到application层呢?这块就需要我们了解安卓蓝牙系统中媒体音频的架构,从而添加接口来获取session id。

安卓系统中关于媒体音频的架构类似于整个蓝牙系统,见下图:

根据上面的系统架构图,则获取audiotrack session id的接口主要和framework、service、JNI以及Bluedroid中btif都有关系。大概的时序图如下:

至此audiotrack session id就通过新增接口被相关应用获取。

获取sessionid_蓝牙音乐AudioTrack Session ID的获取相关推荐

  1. ktm390蓝牙连接安卓_蓝牙音乐AudioTrack Session ID的获取

    当今这个音视频无处不在的时代,音频跟踪会话ID(AudioTrack Session ID)是个很重要的参数,可以用来实现音频相关的一些特效.接下来的内容我们就探究如何在安卓蓝牙系统中获取该id. 熟 ...

  2. android 获取蓝牙设备id_安卓蓝牙系统中如何获取蓝牙音乐的音频跟踪会话ID

    原标题:安卓蓝牙系统中如何获取蓝牙音乐的音频跟踪会话ID 蓝牙音乐AudioTrack Session ID的获取 当今这个音视频无处不在的时代,音频跟踪会话ID(AudioTrack Session ...

  3. Android蓝牙音乐获取歌曲信息

    由于我在蓝牙开发方面没有多少经验,如果只是获取一下蓝牙设备名称和连接状态那么前面的那篇文章就已经足够了,接下来的内容是转自一个在蓝牙音乐方面颇有经验的开发者的博客,他的这篇文章对我帮助很大. 今天,先 ...

  4. Android 9.0 10蓝牙音乐获取歌手、歌曲等信息

    Android 9.0中蓝牙音乐其实实现很简单,蓝牙远程服务处理在Bluetooth中. 修改代码路径: android/packages/apps/Bluetooth./jni/com_androi ...

  5. tp5获取session id的方式

    方法一 先任一设置一个session值,然后获取session id session('g',''); $session_id = session_id(); 方法二 在文件\think\Sessio ...

  6. Android 7.1 高德导航和蓝牙音乐卡顿问题 蓝牙电话和高德语音播报混音问题

    此文章主要解决三个问题 1.高德导航的时候打电话会出现混音问题. 2.蓝牙音乐在播放的时候导航界面语音播报蓝牙音乐会暂停,播报结束会恢复播放不能同时输出问题. 3.蓝牙音乐在播放的时候和导航界面的语音 ...

  7. Android蓝牙音乐(基于Android10)

    Android蓝牙音乐 项目背景: 展示蓝牙音乐信息(歌曲名称.播放进度.歌手.歌词等等)和控制操作蓝牙音乐 1.监听蓝牙设备状态 注意点 :需要动态注册广播,和动态申请权限,不然会接收不到广播 cl ...

  8. android蓝牙音乐之AVRCP介绍和使用

    引言 最近做的车载蓝牙音乐开发,遇到很多问题,记录一下.也是到处东拼西凑的,勉强看看吧. AVRCP:Audio/Video Remote Control Profile,音视频远端控制协议,所以该协 ...

  9. ORA-03113: end-of-file on communication channel Process ID: 252 Session ID: 1 Serial number: 3

    进入字符界面: sqlplus  / as sysdba startup nomount; alter database mount; alter database open; 报如下错误: * ER ...

最新文章

  1. Kafka史上最详细原理总结 ----看完绝对不后悔
  2. 运维常见统计表模板(word版)
  3. python turtle调整画布宽高_turtle.screensize改变不了窗口大小?
  4. 4路视频+4路百电(物理隔离)+8路电话+开关量+串口+电话光端机 武警光端机
  5. 设置View单个圆角
  6. leetcode - 343. 整数拆分
  7. 计算文档中不同单词出现的次数
  8. 实施和开发哪个前景好_「深圳app开发」app模板开发和app定制开发哪个好呢?
  9. 全球1/10女性受到盆腔脏器脱垂困扰
  10. qt 获取用户缩放,Qt-如何创建随窗口缩放并保持纵横比的图像?
  11. React-单页面(SPA)多路由(代替多页面)
  12. 黄道、黄道平面、黄赤交角、正午太阳高度
  13. 插值与拟合 (二) : 曲线拟合的线性最小二乘法
  14. c语言之打印输出图形
  15. 排名不好如何保研外校(ee跨计算机、人工智能 中科大保研经验分享)
  16. IoT物联网——各大厂质量保障实践分享汇总(智能语音视频篇)
  17. 香侬读 | 让预训练模型学习知识:使用多学习器增强知识建模能力
  18. 【go语言基础】go语言的优点和缺点
  19. 爬取千库网ppt_初学Python-只需4步,爬取网站图片(附py文件)
  20. 再下一城!CPC即将登录全球知名交易所BiKi!

热门文章

  1. matlab画转体_【求助】matlab生成旋转体?
  2. java 中方法的使用,两个实例教你学会java中方法的使用
  3. mysql数据库写入数据的语法_mysql数据库插入数据语法
  4. 虚拟现实设备排行榜(2016年3月27日)
  5. 11.1金山游戏开发笔试
  6. python 小案例
  7. linux solr home 配置,关于tomcat6:如何在Linux OS中设置solr / home?
  8. echarts曲线太多卡顿怎么优化_光刻胶旋涂曲线如何获得?
  9. 微软以白金会员加入 OpenChain 开源组织
  10. 从源头入手,一分钟秒懂为什么要搞微服务架构?(转)