public class AudioTrackNative
extends java.lang.Object
AudioTrack
的一个类,
如果在打开了KaraokeController
的reverb以后,
系统自带的默认Audio功能会被抢占, 这个类使用来解决这种情况下的伴奏等音乐的播放。
现在只支持一个AudioTrack。
现在这个类只支持48K 和 双声道 16bit的组合,下一版本会增加更多的bit rate的支持限定符和类型 | 字段和说明 |
---|---|
static int |
CHANNEL_LEFT_ONLY
左声道only: 是在提供双声道的audio的数据, 但是过滤掉右声道的情况
|
static int |
CHANNEL_RIGHT_ONLY
右声道only: 是在提供双声道的audio的数据, 但是过滤掉左声道的情况
|
static int |
CHANNEL_SETTING_MAX |
static int |
CHANNEL_STEREO
双声道
|
构造器和说明 |
---|
AudioTrackNative(int sampleRate,
int channel,
int audioFormat)
AudioTrackNative的构造函数
|
限定符和类型 | 方法和说明 |
---|---|
int |
bufferAvailable()
返回ringbuffer还有多少空间, 就如
write(byte[], int, int) 中描述的一样,如果空间不足, 则会block |
int |
pause()
AudioTrack暂停播放
|
long |
position()
AudioTrack 得到现在播放的位置
|
int |
release()
AudioTrack释放资源
|
int |
resume()
AudioTrack恢复播放
|
int |
start()
AudioTrack 开始播放
|
int |
stop()
AudioTrack停止播放
|
int |
write(byte[] audioData,
int offsetInByte,
int sizeInByte)
写入Audio数据
注意: 这个调用有可能会block。
|
public static final int CHANNEL_STEREO
public static final int CHANNEL_LEFT_ONLY
public static final int CHANNEL_RIGHT_ONLY
public static final int CHANNEL_SETTING_MAX
public AudioTrackNative(int sampleRate, int channel, int audioFormat)
sampleRate
- 比特率:比如48000, @todo 现在只支持48000channel
- 声道数目audioFormat
- 数据格式, 现在支持16bitjava.lang.IllegalArgumentException
- 创建失败,有可能是startReverb失败。public int write(byte[] audioData, int offsetInByte, int sizeInByte)
audioData
- audio数据数组offsetInByte
- audio数组起始的offsetsizeInByte
- 数据的大小public int bufferAvailable()
write(byte[], int, int)
中描述的一样,如果空间不足, 则会blockwrite(byte[], int, int)
中描述的一样,如果空间不足, 则会blockpublic int start()
public long position()
public int stop()
public int pause()
public int resume()
public int release()