众所周知,Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的。MediaPlayer在底层是基于OpenCore(PacketVideo)的库实现的,为了构建一个MediaPlayer程序,上层还包含了进程间通讯等内容,这种进程间通讯的基础是Android基本库中的Binder机制。但是该类只能对完整的音频文件进行操作,而不能直接对纯PCM音频数据操作。假如我们通过解码得到PCM数据源,又当如何将它们播放?没错,就是用AudioTrack这个类(MediaPlayer内部也是调用该类进行真正的播放音频流操作)下面这个DEMO演示了如何使用AudioTrack来播放PCM音频数据
废话不多说,先上效果图:

工程代码结构也较为简单:

简单说下思路,先把PCM音频数据从指定的路径文件读到内存,然后给AudioPlayer设置数据源,音频参数等,最后执行播放,暂停,停止等操作
贴上部分类代码片段:
public class AudioParam {
int mFrequency; // 采样率
int mChannel; //
Android AudioTrack播放PCM音频数据实战

这篇博客介绍了如何使用Android的AudioTrack类播放PCM音频数据。通过创建AudioTrack对象,从文件读取PCM数据并分块写入硬件设备进行播放,详细阐述了play、write和stop等关键方法的使用,提供了测试音频文件和代码示例。
最低0.47元/天 解锁文章
2889

被折叠的 条评论
为什么被折叠?



