Most visited

Recently visited

Added in API level 23

AudioTrack.Builder

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。

Summary

Public constructors

AudioTrack.Builder()

使用上述默认值构造一个新的Builder。

Public methods

AudioTrack build()

使用此 Builder上设置的所有参数构建一个初始化为 AudioTrack实例。

AudioTrack.Builder setAudioAttributes(AudioAttributes attributes)

设置 AudioAttributes

AudioTrack.Builder setAudioFormat(AudioFormat format)

设置要由 AudioTrack播放的音频数据的格式。

AudioTrack.Builder setBufferSizeInBytes(int bufferSizeInBytes)

设置读取音频数据的缓冲区的总大小(以字节为单位)进行播放。

AudioTrack.Builder setSessionId(int sessionId)

设置 AudioTrack将附加到的会话ID。

AudioTrack.Builder setTransferMode(int mode)

设置将音频数据的缓冲区从 AudioTrack传输到框架的模式。

Inherited methods

From class java.lang.Object

Public constructors

AudioTrack.Builder

Added in API level 23
AudioTrack.Builder ()

使用上述默认值构造一个新的Builder。

Public methods

build

Added in API level 23
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.

setAudioAttributes

Added in API level 23
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

setAudioFormat

Added in API level 23
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

setBufferSizeInBytes

Added in API level 23
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

setSessionId

Added in API level 23
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

setTransferMode

Added in API level 23
AudioTrack.Builder setTransferMode (int mode)

设置将音频数据的缓冲区从 AudioTrack传输到框架的模式。

Parameters
mode int: one of MODE_STREAM, MODE_STATIC.
Returns
AudioTrack.Builder the same Builder instance.
Throws
IllegalArgumentException

Hooray!