Android 蓝牙 A2dp 播放音乐流程再探究 --- setDeviceConnectionStateInt(二)

news/2024/12/29 20:41:14/

同学,别退出呀,我可是全网最牛逼的 Android 蓝牙分析博主,我写了上百篇蓝牙文章,请点击下面了解本专栏,进入本博主主页看看再走呗,一定不会让你后悔的,记得一定要去看主页置顶文章哦。

一、概述

我们来看下a2dp下面的播放场景吧。a2dp是蓝牙用来播放音乐的协议,正常情况下,播放音乐只从蓝牙耳机端输出,但是如果是来个通知类的声音,那策略的选择会同时从蓝牙耳机和speaker同时输出,由于speaker和蓝牙是采用的不同硬件设备输出,所以它在hal层应该是对应两个so的。所以,谷歌针对这种场景,继承PlaybackThread,实现了DuplicatingThread,这样就需要在audioflinger这边实现将数据拷贝到两个缓冲区的操作了。

在android下,对于链接蓝牙的音乐播放的话,按照我们的认知,肯定得从蓝牙出来,这是毋庸置疑的,也合乎常理,这个和一般的音乐播放一样,只是需要单纯的选择到对应的设备通过一个output即可完成播放。但是有一些特殊的场景,需要声音即从蓝牙耳机输出,又从设备的speaker输出,这个时候对于单个output的播放方式就无法满足这种场景了,于是谷歌引入duplicate播放该种类型声音的方案,接下来我们将一起来分析这部分的代码。

二、源码分析

接上文:

对于我们的场景,从上面我们已经知道打开了两个output。一个是mixer output,一个是duplicat


http://www.ppmy.cn/news/378187.html

相关文章

Android音乐播放器制作(一)扫描本地音乐显示在手机上

思路 首先是扫描本地所有的音频文件,然后全部装进集合当中,接下来就是用ListView展示在屏幕上,大概就是这几个步骤了,接下来细讲 创建一个容器 进行过数据解析的朋友都应该知道JavaBean吧,用来装载解析出来的数据&…

蓝牙音乐之A2DP

蓝牙音乐之A2DP 本篇文章简单聊聊蓝牙音乐涉及到的A2DP协议,大家平常使用蓝牙耳机听音乐就是通过该协议实现的,此协议有时也被称为媒体音频协议。通过手机蓝牙设置中已连接的设备可以查看具体连接的哪些协议,那其中的媒体音频那一项就对应于本…

基于CK6855M1设计的离线语音识别蓝牙音乐球泡灯的设计

一.方案概述 随着人类文明的进步,21世纪的人们对物质的要求也越来越高。在灯具照明市场层面,很多传统灯具厂的经营状况也越来越不乐观,其原因是: 1.传统灯具产品生产制造门款低,利润薄 2.竞争激烈,各生产…

蓝牙音乐播放芯片改怎么选型?

蓝牙音乐播放芯片改怎么选型? 随着蓝牙技术的成长,市面上的蓝牙方案不管是在技术层面还是市场占用率方面,这些年都发生了翻天覆地的变化。现在市面上的蓝牙芯片多而且杂,那么,蓝牙音乐播放芯片怎么选择呢?…

BLE-HID 音乐/相机控制

以SDK下自带的 HID 鼠标示例为例说明: 音乐控制: 代码中 main中调用了services_init初始化几个服务。 其中调用hids_init 来初始化hid服务 函数中首先定义了 static uint8_t rep_map_data[] 这个数组变量。 这个变量里面存的值就是 报告描述符&…

BLE HID控制手机相机或音乐

BLE HID涉及到设备管理。具体内容看<<设备管理>>部分。 BLE HID涉及到白名单。具体内容看<<白名单>>部分。 BLE HID涉及到定向广播。具体内容看<<定向广播>>部分。 硬件平台&#xff1a;官方52开发板 参考例程&#xff1a;C:..\nRF5_SD…

传世单机 GM命令 查看所有GM命令 自定义游戏命令

有些人拿到单机&#xff0c;却不知道怎么刷装备&#xff0c;这里告诉你&#xff01; 打开游戏主引擎界面&#xff0c;点击选项&#xff0c;点击游戏命令&#xff0c;即可看到所有游戏命令。也可以自定义游戏命令。