as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持
跳转到主要内容
音频播放流构建器允许配置、创建和销毁音频播放流。

所需服务

API需要声明系统音频服务:

使用的类型

请参阅

构造函数

new AudioPlaybackStreamBuilder()

new AudioPlaybackStreamBuilder(): AudioPlaybackStreamBuilder

返回值

AudioPlaybackStreamBuilder

属性

args

args: Object = {}

方法

buildAsync()

buildAsync(): Promise<AudioPlaybackStream> 使用当前的构建器配置,新建AudioPlaybackStream。构建前务必调用setAudioConfig和setAudioSource。

返回值

Promise<AudioPlaybackStream> Promise 解析为如下的Promise:
  • 如果成功,则会创建新的AudioPlaybackStream实例
或显示以下拒绝结果:
  • STATUS_BAD_VALUE (-2):缺少必要配置
  • STATUS_NO_INIT (-3):音频系统未初始化
  • STATUS_NO_MEMORY (-1):资源分配失败
  • STATUS_DEAD_OBJECT (-5):服务器通信错误
  • STATUS_INVALID_OPERATION (-8):配置组合无效

示例


destroyAsync()

static destroyAsync(playbackStream: AudioPlaybackStream): Promise<AudioStatus> 销毁现有的AudioRecordStream。这会释放所有与流相关的资源。调用此方法后不得使用流对象。任何正在进行的播放都将停止。

参数

playbackStream
AudioPlaybackStream 要销毁的流

返回值

Promise<AudioStatus> Promise 解析为如下的Promise:
  • STATUS_NO_ERROR (0):已成功销毁的流
  • STATUS_BAD_VALUE (-2):流对象无效
  • STATUS_NO_INIT (-3):音频系统未初始化
  • STATUS_INVALID_OPERATION (-8):流已销毁

示例


reset()

reset(): void 重置所有构建器配置并设为默认值。 借此复用构建器,创建不同的流配置。

示例


setAudioAttributes()

setAudioAttributes(attributes: AudioAttributes): void 为要构建的流设置音频属性。必须在buildAsync之前调用。这些属性会影响直播与音频焦点系统的交互方式。

参数

attributes
AudioAttributes 音频属性对象包含以下项。
  • contentType:来自types/AudioCoreClientTypes.AudioContentType枚举的内容类型
  • usage: 来自types/AudioCoreClientTypes.AudioUsageType枚举的使用场景
  • flags: 来自types/AudioCoreClientTypes.AudioFlags枚举的行为标记

示例


setAudioConfig()

setAudioConfig(config: AudioConfig): void 为要构建的流设置音频配置。必须在buildAsync之前调用。

参数

config
AudioConfig 音频配置对象包含:
  • sampleRate:来自types/AudioCoreClientTypes.AudioSampleRate枚举的采样率(单位:Hz)
  • channelMask:来自types/AudioCoreClientTypes.AudioChannelMask枚举的频道配置
  • format:来自types/AudioCoreClientTypes.AudioSampleFormat枚举的采样格式

示例


setAudioEffectSessionId()

setAudioEffectSessionId(effectSessionId: Int32): void 为流设置自定义音效会话ID。这允许对该流应用自定义音频效果。

参数

effectSessionId
Int32 效果会话ID获取自:

setAudioFocusSessionId()

setAudioFocusSessionId(focusSessionId: Int32): void 设置流的音频焦点会话ID。这会将流与特定的焦点会话关联,以进行焦点管理。

参数

focusSessionId
Int32 焦点会话ID获取自:
  • 现有

示例

注意:​ 上面的示例假设会话是一个AudioFocusSession object。

setBufferCount()

setBufferCount(bufferCount: Int32): void 设置用于流的缓冲区数量。更多的缓冲区会增加延迟,但可以更好地防止欠载。

参数

bufferCount
Int32 缓冲区数量。必须大于0。典型值:2, 3, 4

setDuckingPolicy()

setDuckingPolicy(duckPolicy: StreamDuckingPolicy): void 为流设置放弃策略。这决定了放弃音频焦点时处理音量减小的方式。 如果放弃策略等于StreamDuckingPolicy::EXPLICIT,则应用需要调用duckVolume API来放弃流音量,否则音量将无法更改;如果设置为StreamDuckingPolicy::SYSTEM(默认设置),则流音量放弃由系统处理。

参数

duckPolicy
StreamDuckingPolicy 放弃策略:
  • SYSTEM (0):系统自动处理音量减小问题
  • EXPLICIT (1):应用程序必须使用AudioPlaybackStream.duckVolumeAsync调用来处理音量减小问题

示例


setFramesPerBuffer()

setFramesPerBuffer(framesPerBuffer: Int32): void 设置流中每个缓冲区的帧数。这用于确定共享内存缓冲区队列中每个插槽的缓冲区大小。值越大,延迟越大,但能效越高。值越小,延迟越小,但可能导致欠载。

参数

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

示例


setUnderrunThreshold()

setUnderrunThreshold(framesThreshold: Int32): void 设置报告缓冲区欠载的阈值。当播放缓冲区变为空时,会出现欠载。

参数

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

示例


最后修改于 2026年10月26日