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 |
|
---|---|
From class 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 |