没有合适的资源?快使用搜索试试~ 我知道了~
Android蓝牙开发系列文章-AudioTrack播放PCM音频
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 6 下载量 88 浏览量
2021-01-06
10:31:29
上传
评论
收藏 519KB PDF 举报
温馨提示
试读
4页
终于迎来了蓝牙a2dp的第二篇:利用AudioTrack播放PCM音频数据。如想查看更多内容,请点击《Android蓝牙开发系列文章-策划篇》。 先回顾一下上一篇文章《Android蓝牙开发系列文章-蓝牙音箱连接》讲到的蓝牙音箱的完成配对、连接的流程:扫描设备–监听DEVICE_FOUND广播–>直到找到目标设备–>对目标设备发起配对–>监听到设备配对成功–>发起设备连接–>监听连接状态的广播,连接成功。 本篇基于上一节的小结果,实现播放PCM数据,蓝牙音箱出声音。 音乐播放器播放的声音数据,经过解码、混音等处理后,送给a2dp_hw的数据就是PCM数据,也是这点联系,所以写了这篇文章。 目录
资源推荐
资源详情
资源评论
方式 特点
SoundPool 适用于播放短促的声音,例如游戏音效、按键音等
AudioTrack 仅适用于播放PCM音频数据
MediaPlayer
能够播放多种文件格式的音频数据,例如MP3/AAC/WAV、OGG等。MediaPlayer在framework层创建AudioTrack,音频数据经过解码得到PCM数据,PCM数据再送到
AudioTrack
Android蓝牙开发系列文章蓝牙开发系列文章-AudioTrack播放播放PCM音频音频
终于迎来了蓝牙a2dp的第二篇:利用AudioTrack播放PCM音频数据。如想查看更多内容,请点击《Android蓝牙开发系列文章-策划篇》。
先回顾一下上一篇文章《Android蓝牙开发系列文章-蓝牙音箱连接》讲到的蓝牙音箱的完成配对、连接的流程:扫描设备–监听DEVICE_FOUND广播–>直到找到目标设备–>对目标设
备发起配对–>监听到设备配对成功–>发起设备连接–>监听连接状态的广播,连接成功。
本篇基于上一节的小结果,实现播放PCM数据,蓝牙音箱出声音。
音乐播放器播放的声音数据,经过解码、混音等处理后,送给a2dp_hw的数据就是PCM数据,也是这点联系,所以写了这篇文章。
目录目录
1.常见的音乐播放方式有哪些?
2.利用AudioTrack实现播放音频
2.1.配置基本参数
2.2获取最小缓冲区大小
2.3 基于基本参数、缓冲区创建AudioTrack对象
2.4 读取PCM文件,转成DataInputStream
2.5开启/停止播放
1.常见的音乐播放方式有哪些?常见的音乐播放方式有哪些?
我了解到的常见的音乐播放方式有如下三种,如果你知道更多,请留言告诉我哈~
2.2获取最小缓冲区大小获取最小缓冲区大小
这个缓冲区大小一定要通过AudioTrack::getMinBufferSize()来获取,一定不要自己附一个值。这个值与采样率、通道数、采样位数有关,具体计算公式在这里就不细究了,毕竟本专
题是讲解蓝牙的~
mMinBufferSize = AudioTrack.getMinBufferSize(mSampleRateInHz,mChannelConfig, mAudioFormat);//计算最小缓冲区
2.3 基于基本参数、缓冲区创建基于基本参数、缓冲区创建AudioTrack对象对象
mAudioTrack = new AudioTrack(mStreamType, mSampleRateInHz,mChannelConfig,
mAudioFormat,mMinBufferSize,mMode);
Log.d(TAG, "intData, mAudioTrack.getState() = " + mAudioTrack.getState());
可以看到AudioTrack有三种状态,在创建后就处于STATE_INITIALIZED状态,也就是说明:上面的log输出为:
03-13 23:37:45.647 12027-12027/com.atlas.btdemo D/MusicPlayer: intData, mAudioTrack.getState() = 1
/**
* State of an AudioTrack that was not successfully initialized upon creation.
*/
public static final int STATE_UNINITIALIZED = 0;
/**
weixin_38522552
- 粉丝: 5
- 资源: 922
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业设计-仿生六足机器人的制作全教程源码+电子元器件+程序代码+线路组件图+安装教程+搭建视频教程
- 基于ROS和webots的xrobot机械臂仿真初探C++源码
- 基于ROS的点焊机器人仿真与控制python源码+文档说明+使用说明+详细注释
- 基于vue实现的细粒度交通时空大数据分析系统+源代码+文档说明
- 安卓大作业-基于Electron的交通时空大数据分析挖掘系统客户端(Android)+源代码+文档说明+界面截图
- 基于Java的朱氏集团客户关系管理系统设计源码
- 基于C++的作业提交与批改系统设计源码
- 基于Vue2的移动端电影资讯网站设计源码
- 高分课程设计作业-基于QT的模仿宝石迷阵游戏C++源码+文档说明+界面截图
- 基于Apache Spark的Spark DistCP重实现设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页