效果图
源码
源码下载,请先移步Android左右声道的控制
我这里主要是用到了AudioTrack实现的左右声道的控制,手机一般都只有两个声道,即左声道和右声道,我们在输出的时候可以选择单声道,也可以选择双声道(立体声)。
查看了AudioTrack的API,提供了play()、pause()、stop()、write()等一系列的方法。
通过write()方法,可以实现将音频数据发送出去(播放出来)。
AudioTrack对象的构造
有三个构造方法
AudioTrack (int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode)
AudioTrack (int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode, int sessionId)
AudioTrack (AudioAttributes attributes, AudioFormat format, int bufferSizeInBytes, int mode, int sessionId)
主要参数有如下几个
streamType:以什么形式播放
STREAM_VOICE_CALL
STREAM_SYSTEM
STREAM_RING
STREAM_MUSIC
STREAM_ALARM
STREAM_NOTIFICATION
sampleRateInHz:采样率
channelConfig:声道
AudioFormat.CHANNEL_OUT_MONO:输出单声道音频数据
AudioFormat.CHANNEL_OUT_STEREO:输出双声道音频数据(立体声)
audioFormat:音频数据格式
mode:缓冲模式
MODE_STATIC:一次性将音频载入以后再播放
MODE_STREAM:以流的形式,加载一点就播放一点
把channelConfig的相关参数都看了一遍,没发现有可以指定向某声道发送数据的,只能通过AudioF