Android 音频架构定义了音频功能的实现方式,并指出实现中所涉及的相关源代码。如果感兴趣可以参看官网文档查阅相关源码:
1、AudioTrack的使用
AudioTrack有两种初始化方式:
- 1、public AudioTrack(int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode)
- 2、AudioTrack.Builder
Android M(6.0)之后舍弃了public AudioTrack(int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode)的方式初始化,所以要兼容6.0以上需要使用AudioTrack.Builder初始化
1.1、初始化方式:public AudioTrack(int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode)
- streamType:
参数streamType:媒体类型STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC, STREAM_ALARM, STREAM_NOTIFICATION
- sampleRateInHz:
参数sampleRateInHz:采样率,有8000、20100等,一般来说越高音质越好,但文件体积就越大
- channelConfig:
参数channelConfig:声道,单声道CHANNEL_OUT_MONO 和双声道 CHANNEL_OUT_STEREO
- audioFormat:
参数audioFormat:采样点大小,只有ENCODING_PCM_16BIT 和 ENCODING_PCM_8BIT两种选择,意思是一个采集点16bit或8bit
- bufferSizeInBytes:
参数bufferSizeInBytes:AudioTrack一次所能接收最小的声音资源大小,通过getMinBufferSize函数获取,用于读取音频数据的内部缓冲区的总大小(以byte为单位)。
- mode:
参数mode:有MODE_STATIC和MODE_STREAM两种分类。