当前位置: 首页 > news >正文

Android 蓝牙实战——蓝牙音乐播放进度(二十)

        对于蓝牙音乐的开发来说,播放进度是一个比较重要的数据参数,这里我们就来分析一下蓝牙音乐播放进度的相关回调。

一、回调流程

1、AvrcpControllerService

源码位置:/packages/apps/Bluetooth/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerService.java

// 由JNI基于计时器周期性地调用以更新播放位置
private synchronized void onPlayPositionChanged(byte[] address, int songLen, int currSongPosition) {if (DBG) {Log.d(TAG, "onPlayPositionChanged pos " + currSongPosition);}BluetoothDevice device = getAnonymousDevice(address);AvrcpControllerStateMachine stateMachine = getStateMachine(device);if (stateMachine != null) {stateMachine.sendMessage(AvrcpControllerStateMachine.MESSAGE_PROCESS_PLAY_POS_CHANGED,songLen, currSongPosition);}
}

        该回调主要接收状态机返回的进度信息,记住这里的相关 Log,对 Bug 分析很有帮助。这里通过 MESSAGE_PROCESS_PLAY_POS_CHANGED 消息将当前进度发送到状态机。

2、AvrcpControl

http://www.lryc.cn/news/346261.html

相关文章:

  • SQL注入实例(sqli-labs/less-1)
  • Python中tkinter编程入门3
  • XMind 2023 v23.05.2660软件安装教程(附软件下载地址)
  • docker compose kafka集群部署
  • 最新版在线客服系统源码
  • 【比邻智选】MR880A模组
  • 超大文件去除重复数据
  • ICode国际青少年编程竞赛- Python-4级训练场-列表综合练习
  • 苹果电脑怎么安装crossover 如何在Mac系统中安装CrossOver CrossOver Mac软件安装说明
  • C++学习————第十天(string的基本使用)
  • 华为OD介绍
  • 判断点在多边形内部
  • livox雷达斜装修改
  • 【Spring】初识 Spring AOP(面向切面编程)
  • k8s各个组件的作用
  • Spring Cloud 整合Sentinel
  • Java入门基础学习笔记4——开发Helloworld入门程序
  • 了解WebSocket
  • 从开发角度理解漏洞成因(02)
  • Web实时通信的学习之旅:轮询、WebSocket、SSE的区别以及优缺点
  • TMS320F280049 CLB模块--LUT4 OUTLUT(4)
  • 功能测试_分类_用例_方法
  • [沫忘录]MySQL 锁
  • 噪声嵌入提升语言模型微调性能
  • XML文档基本语法
  • git开发工作流程
  • JDK生成https配置
  • 通过 Java 操作 redis -- set 集合基本命令
  • WebSocket前后端建立以及使用
  • C++数据结构之链表树图的存储