AudioPlaybackStreamBuilder
构造函数
new AudioPlaybackStreamBuilder()
new AudioPlaybackStreamBuilder():
AudioPlaybackStreamBuilder
返回值
属性
args
args:
Object={}
方法
buildAsync()
buildAsync():
Promise<AudioPlaybackStream>
使用当前的构建器配置,新建AudioPlaybackStream。构建前务必调用setAudioConfig和setAudioAttributes。
返回值
Promise<AudioPlaybackStream>
解析为以下项的Promise:
- 如果成功,则会创建新的AudioPlaybackStream实例
或显示以下拒绝结果:
STATUS_BAD_VALUE (-2): 缺少必要配置STATUS_NO_INIT (-3): 音频系统未初始化STATUS_NO_MEMORY (-1): 资源分配失败STATUS_DEAD_OBJECT (-5): 服务器通信错误STATUS_INVALID_OPERATION (-8): 配置组合无效
reset()
reset():
void
重置所有构建器配置并设为默认值。
借此复用构建器,创建不同的流配置。
返回值
void
setAudioAttributes()
setAudioAttributes(
attributes):void
为要构建的流设置音频属性。必须在buildAsync之前调用。这些属性会影响直播与音频焦点系统的交互方式。
参数
attributes
音频属性对象包含以下项。
- contentType: 来自types/AudioCoreClientTypes.AudioContentType枚举的内容类型
- usage: 来自types/AudioCoreClientTypes.AudioUsageType枚举的使用场景
- flags: 来自types/AudioCoreClientTypes.AudioFlags枚举的行为标记
返回值
void
setAudioConfig()
setAudioConfig(
config):void
为要构建的流设置音频配置。必须在buildAsync之前调用。
参数
config
音频配置对象包含:
sampleRate: 来自types/AudioCoreClientTypes.AudioSampleRate枚举的采样率(单位:Hz)channelMask: 来自types/AudioCoreClientTypes.AudioChannelMask枚举的频道配置format: 来自types/AudioCoreClientTypes.AudioSampleFormat枚举的采样格式
返回值
void
setAudioEffectSessionId()
setAudioEffectSessionId(
effectSessionId):void
为流设置自定义音效会话ID。这允许对该流应用自定义音频效果。
参数
effectSessionId
number
效果会话ID获取自: AudioManager.AudioManager.allocateCustomAudioEffectSessionAsync
返回值
void
setAudioFocusSessionId()
setAudioFocusSessionId(
focusSessionId):void
设置流的音频焦点会话ID。这会将流与特定的焦点会话关联,以进行焦点管理。
参数
focusSessionId
number
焦点会话ID获取自:
- AudioFocusManager.AudioFocusManager.createAudioFocusSessionAsync
- AudioFocusManager.AudioFocusManager.getDefaultAudioFocusSessionAsync
- 现有的AudioFocusSession.AudioFocusSession.getAudioSessionId
返回值
void
setBufferCount()
setBufferCount(
bufferCount):void
设置用于流的缓冲区数量。更多的缓冲区会增加延迟,但可以更好地防止欠载。
参数
bufferCount
number
缓冲区数量。必须大于0。典型值: 2, 3, 4
返回值
void
setDuckingPolicy()
setDuckingPolicy(
duckPolicy):void
为流设置放弃策略。这决定了放弃音频焦点时处理音量减小的方式。
参数
duckPolicy
放弃策略:
SYSTEM (0): 系统自动处理音量减小问题EXPLICIT (1): 应用必须使用AudioPlaybackStream.duckVolumeAsync调用来处理音量减小问题
返回值
void
setFramesPerBuffer()
setFramesPerBuffer(
framesPerBuffer):void
设置流中每个缓冲区的帧数。值越大,延迟越大,但能效越高。值越小,延迟越小,但可能导致欠载。
参数
framesPerBuffer
number
每个缓冲区的帧数。必须大于0。典型值: 256、512、1024、2048
返回值
void
setUnderrunThreshold()
setUnderrunThreshold(
framesThreshold):void
设置报告缓冲区欠载的阈值。当播放缓冲区变为空时,会出现欠载。
参数
framesThreshold
number
帧数阈值。当可用帧数降至该值以下时,将触发欠载事件。必须大于0。
返回值
void
destroyAsync()
staticdestroyAsync(playbackStream):Promise<AudioStatus>
销毁现有的AudioPlaybackStream。这会释放所有与流相关的资源。调用此方法后不得使用流对象。任何正在进行的播放都将停止。
参数
playbackStream
要销毁的流
返回值
Promise<AudioStatus>
解析为以下项的Promise:
STATUS_NO_ERROR (0): 已成功销毁的流STATUS_BAD_VALUE (-2): 流对象无效STATUS_NO_INIT (-3): 音频系统未初始化STATUS_INVALID_OPERATION (-8): 流已销毁
Last updated: 2025年10月2日

