Interface IAudioStreamPlaybackBuilder
interface IAudioStreamPlaybackBuilder
Extends com.amazon.apmf.IStandard
Interface for encapsulating Audio Playback Builder
Methods
audioConfig()
Set audio configIAudioStreamPlaybackBuilder*audioConfig(AudioConfig*audioconfig)
Parameters
audioconfig
AudioConfig* — Required
playback audio data configuration
Returns
IAudioStreamPlaybackBuilder*
playback stream builder object
audioAttributes()
Set audio attributesIAudioStreamPlaybackBuilder*audioAttributes(AudioAttributes*audioAttributes)
Parameters
audioAttributes
AudioAttributes* — Required
playback stream attributes
Returns
IAudioStreamPlaybackBuilder*
playback stream builder object
framesPerBuffer()
Configure each buffer capacity in frame count for shared memory buffer queue. Used to determine buffer size per slot in the shared memory buffer queue. Minimum possible size could be requested by queryMinimumBufferInfo.IAudioStreamPlaybackBuilder*framesPerBuffer(i32frames)
Parameters
frames
i32 — Required
number of frames per buffer in the buffer queue
Returns
IAudioStreamPlaybackBuilder*
playback stream builder object
bufferCount()
Configure buffer count in buffer queue for shared memory. Used for fine tuning latency behavior. smaller the number, less latency there will be, but system will carry greater risk for xrun glitching. Support both pcm and compressed data for buffer size configuration. Minimum possible count could be requested by Playback::queryMinimumBufferInfo.IAudioStreamPlaybackBuilder*bufferCount(i32count)
Parameters
count
i32 — Required
number of buffers in shared memory queue.
Returns
IAudioStreamPlaybackBuilder*
playback stream builder object
underrunThreshold()
Configure when audio server will report buffer underruns back to client. Used for monitoring size of buffer during stream playback. Underrun detection will only start after first audio frame renders. Afterwards, if the buffer size falls below set threshold, onBufferUnderrun callback will be triggered. If server dies and recovers, any data in client buffer is cleared and underrun detection will only begin again once enough data is in buffer to render one audio frame.IAudioStreamPlaybackBuilder*underrunThreshold(i32framesThreshold)
Parameters
framesThreshold
i32 — Required
minimum size of buffer in frames before underrun is reported.
Returns
IAudioStreamPlaybackBuilder*
playback stream builder object
audioFocusSessionId()
Configure audio focus session ID. Used to specify which audio focus session it links to. If not set, this stream will link to default audio focus session.IAudioStreamPlaybackBuilder*audioFocusSessionId(i32sessionId)
Parameters
sessionId
i32 — Required
focus session ID acquired from getAudioSessionId@AudioFocusSession. If not
valid, default audio focus session’s ID will be applied instead
Returns
IAudioStreamPlaybackBuilder*
playback stream builder object
duckingPolicy()
Set stream audio ducking policy. Used to specify whether using explicitly ducking by app or using automatic ducking by system.IAudioStreamPlaybackBuilder*duckingPolicy(StreamDuckingPolicy*policy)
Parameters
policy
StreamDuckingPolicy* — Required
ducking policy
Returns
IAudioStreamPlaybackBuilder*
playback stream builder object.
If ducking policy is StreamDuckingPolicy::EXPLICIT, the app needs to call duckVolume API
to duck the stream volume, otherwise the volume won’t be changed; if set to
StreamDuckingPolicy::SYSTEM (by default), the stream volume ducking is handled by the system.
build()
Build the AudioStream Playback object.IAudioStreamPlayback*build()
Returns
IAudioStreamPlayback*
playback stream builder object

