Audio Track
AudioTrack 为android的播放器,只能播放PCM格式的音源,其实Android自带的MediaPlayer类也是通过解码改为PCM格式的然后调用AudioTrack并向其写入数据,AudioTrack同时会通过Binder机制调用另外一端的AudioFlinger,得到IAudioTrack对象,通过它和AudioFlinger交互,然后AudioFlinger再与硬件交互,进行播放声音,之间的过程就不写了,很多博客上有。。
AudioTrack的使用
刚刚说过,AudioTrack只能播放PCM格式的数据,对于Android来说,无非就是Buffer了,直接表现为byte[],AudioTrack中的write(byte[] buffer,int offset,int len)方法,buffer参数就是我们得到的数据,而数据又是从歌曲中拿到的,一般的歌曲文件为wav/mp3文件,当然mp3多一点,对这块我具体不是很熟,我们用最简单的wav文件播放举例说明吧~
当我们拿到wav文件的时候,首先要解析它,解析的话推荐看一下这篇文章
https://zhuanlan.zhihu.com/p/20657836?refer=jhuster
这个专栏还有很多音频开发知识,多谢作者的分享了