public static class AudioTrack.Builder
extends Object
| java.lang.Object | |
| android.media.AudioTrack.Builder | |
AudioTrack对象的生成器类。 使用这个类来配置和创建一个AudioTrack实例。 通过设置音频属性和音频格式参数,可以指出哪些参数与设备的默认行为不同。
以下是一个示例,其中 Builder用于指定所有 AudioFormat参数,以供新的 AudioTrack实例使用:
AudioTrack player = new AudioTrack.Builder()
.setAudioAttributes(new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ALARM)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build())
.setAudioFormat(new AudioFormat.Builder()
.setEncoding(AudioFormat.ENCODING_PCM_16BIT)
.setSampleRate(44100)
.setChannelMask(AudioFormat.CHANNEL_OUT_STEREO)
.build())
.setBufferSizeInBytes(minBuffSize)
.build();
如果音频属性未使用setAudioAttributes(AudioAttributes)设置, setAudioAttributes(AudioAttributes)使用包含USAGE_MEDIA属性。
如果音频格式未指定或不完整,其通道配置将为CHANNEL_OUT_STEREO ,编码将为ENCODING_PCM_16BIT 。 采样率取决于实际选择播放的设备,可以用getSampleRate()方法查询。
如果未使用setBufferSizeInBytes(int)指定缓冲区大小,并且模式为MODE_STREAM ,则使用最小缓冲区大小。
如果未使用setTransferMode(int)指定传输模式,则将使用MODE_STREAM 。
如果未使用setSessionId(int)指定会话ID,则会生成新会话ID。
Public constructors |
|
|---|---|
AudioTrack.Builder() 使用上述默认值构造一个新的Builder。 |
|
公共方法(Public methods) |
|
|---|---|
AudioTrack |
build() 使用此 |
AudioTrack.Builder |
setAudioAttributes(AudioAttributes attributes) 设置 |
AudioTrack.Builder |
setAudioFormat(AudioFormat format) 设置要由 |
AudioTrack.Builder |
setBufferSizeInBytes(int bufferSizeInBytes) 设置读取音频数据的缓冲区的总大小(以字节为单位)进行播放。 |
AudioTrack.Builder |
setSessionId(int sessionId) 设置 |
AudioTrack.Builder |
setTransferMode(int mode) 设置将音频数据的缓冲区从 |
继承方法(Inherited methods) |
|
|---|---|
java.lang.Object
|
|
AudioTrack build ()
构建使用此 Builder上设置的所有参数初始化的 AudioTrack实例。
| 返回(Returns) | |
|---|---|
AudioTrack |
a new successfully initialized AudioTrack instance. |
| 抛出异常(Throws) | |
|---|---|
UnsupportedOperationException |
if the parameters set on the Builder were incompatible, or if they are not supported by the device, or if the device was not available. |
AudioTrack.Builder setAudioAttributes (AudioAttributes attributes)
设置 AudioAttributes 。
| 参数(Parameters) | |
|---|---|
attributes |
AudioAttributes: a non-null AudioAttributes instance that describes the audio data to be played. |
| 返回(Returns) | |
|---|---|
AudioTrack.Builder |
the same Builder instance. |
| 抛出异常(Throws) | |
|---|---|
IllegalArgumentException |
|
AudioTrack.Builder setAudioFormat (AudioFormat format)
设置要由AudioTrack播放的音频数据的格式。 请参阅AudioFormat.Builder以配置音频格式参数,例如编码,通道掩码和采样率。
| 参数(Parameters) | |
|---|---|
format |
AudioFormat: a non-null AudioFormat instance. |
| 返回(Returns) | |
|---|---|
AudioTrack.Builder |
the same Builder instance. |
| 抛出异常(Throws) | |
|---|---|
IllegalArgumentException |
|
AudioTrack.Builder setBufferSizeInBytes (int bufferSizeInBytes)
设置读取音频数据的缓冲区的总大小(以字节为单位)进行播放。 如果在数据流模式下使用AudioTrack (请参阅MODE_STREAM ,可以使用小于此大小的数据块将数据写入此缓冲区,请参阅getMinBufferSize(int, int, int)以确定在流模式下创建AudioTrack实例的估计最小缓冲区大小。
如果在静态模式下使用AudioTrack (请参阅MODE_STATIC ),则这是此实例将播放的最大声音大小。
| 返回(Returns) | |
|---|---|
AudioTrack.Builder |
the same Builder instance. |
| 抛出异常(Throws) | |
|---|---|
IllegalArgumentException |
|
AudioTrack.Builder setSessionId (int sessionId)
设置 AudioTrack将附加到的会话ID。
| 参数(Parameters) | |
|---|---|
sessionId |
int: a strictly positive ID number retrieved from another AudioTrack via getAudioSessionId() or allocated by AudioManager via generateAudioSessionId(), or AUDIO_SESSION_ID_GENERATE. |
| 返回(Returns) | |
|---|---|
AudioTrack.Builder |
the same Builder instance. |
| 抛出异常(Throws) | |
|---|---|
IllegalArgumentException |
|
AudioTrack.Builder setTransferMode (int mode)
设置将音频数据的缓冲区从 AudioTrack传输到框架的模式。
| 参数(Parameters) | |
|---|---|
mode |
int: one of MODE_STREAM, MODE_STATIC. |
| 返回(Returns) | |
|---|---|
AudioTrack.Builder |
the same Builder instance. |
| 抛出异常(Throws) | |
|---|---|
IllegalArgumentException |
|