as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

AudioPlaybackStreamBuilder

AudioPlaybackStreamBuilder

构造函数

new AudioPlaybackStreamBuilder()

new AudioPlaybackStreamBuilder(): AudioPlaybackStreamBuilder

返回值

AudioPlaybackStreamBuilder

属性

args

args: Object = {}

方法

buildAsync()

buildAsync(): Promise<AudioPlaybackStream>

使用当前的构建器配置,新建AudioPlaybackStream。构建前务必调用setAudioConfigsetAudioAttributes

返回值

Promise<AudioPlaybackStream>

解析为以下项的Promise:

或显示以下拒绝结果:

  • 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

AudioAttributes

音频属性对象包含以下项。

  • contentType: 来自types/AudioCoreClientTypes.AudioContentType枚举的内容类型
  • usage: 来自types/AudioCoreClientTypes.AudioUsageType枚举的使用场景
  • flags: 来自types/AudioCoreClientTypes.AudioFlags枚举的行为标记

返回值

void


setAudioConfig()

setAudioConfig(config): void

为要构建的流设置音频配置。必须在buildAsync之前调用。

参数

config

AudioConfig

音频配置对象包含:

  • 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

StreamDuckingPolicy

放弃策略:

返回值

void


setFramesPerBuffer()

setFramesPerBuffer(framesPerBuffer): void

设置流中每个缓冲区的帧数。值越大,延迟越大,但能效越高。值越小,延迟越小,但可能导致欠载。

参数

framesPerBuffer

number

每个缓冲区的帧数。必须大于0。典型值: 256、512、1024、2048

返回值

void


setUnderrunThreshold()

setUnderrunThreshold(framesThreshold): void

设置报告缓冲区欠载的阈值。当播放缓冲区变为空时,会出现欠载。

参数

framesThreshold

number

帧数阈值。当可用帧数降至该值以下时,将触发欠载事件。必须大于0。

返回值

void


destroyAsync()

static destroyAsync(playbackStream): Promise<AudioStatus>

销毁现有的AudioPlaybackStream。这会释放所有与流相关的资源。调用此方法后不得使用流对象。任何正在进行的播放都将停止。

参数

playbackStream

AudioPlaybackStream

要销毁的流

返回值

Promise<AudioStatus>

解析为以下项的Promise:

  • STATUS_NO_ERROR (0): 已成功销毁的流
  • STATUS_BAD_VALUE (-2): 流对象无效
  • STATUS_NO_INIT (-3): 音频系统未初始化
  • STATUS_INVALID_OPERATION (-8): 流已销毁

Last updated: 2025年10月2日