as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持
跳转到主要内容
音频播放流允许控制播放流,例如暂停、刷新和写入播放缓冲区。

所需权限

API需要特定权限才能执行某些操作:
API还需要声明系统音频服务:

使用的类型

请参阅

构造函数

new AudioPlaybackStream()

new AudioPlaybackStream(id): AudioPlaybackStream

参数

id
number 内部流标识符

返回值

AudioPlaybackStream

属性

streamId

streamId: number

方法

duckVolumeAsync()

duckVolumeAsync(mode: Int32, value: Int32, rampDurationMs: Int32): Promise<Int32> 调整用于放弃的流音量。仅在使用EXPLICIT放弃策略时有效。

参数

mode
Int32 (0) 或 (1)
值
Int32 音量的减小量:
  • 对于DB:减小0-144dB
  • 对于PERCENTAGE:减小0-100%
值 = 0表示流将降至原始流音量
rampDurationMs
Int32 从当前音量到目标音量所需的时间(以毫秒为单位)

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • (0):音量放弃成功
  • (-3):流未初始化
  • (-2):参数无效
  • (-8):错误的放弃原则

示例


flushAsync()

flushAsync(): Promise<AudioStatus> 在不更改播放状态的情况下清空所有缓冲的数据。

返回值

Promise<AudioStatus> Promise 解析为如下的Promise:
  • (0):成功清空
  • (-3):流未初始化
  • (-8):播放时无法清空
  • (-5):服务器通信错误

示例


getAudioAttributesAsync()

getAudioAttributesAsync(): Promise<AudioAttributes> 检索播放流的当前音频属性。

返回值

Promise<AudioAttributes> Promise 解析为含有以下内容的对象的Promise:
  • contentType:正在播放的内容类型
  • usage: 流的使用类别
  • flags: 当前行为标记,或者通过以下项拒绝:
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getAudioConfigAsync()

getAudioConfigAsync(): Promise<AudioConfig> 检索播放流的当前音频配置。

返回值

Promise<AudioConfig> Promise 解析为含有以下内容的对象的Promise:
  • sampleRate:当前采样率(单位:Hz)
  • channelMask:当前频道配置
  • format:当前样本格式,或者通过以下项拒绝:
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getAudioEffectSessionIdAsync()

getAudioEffectSessionIdAsync(): Promise<Int32> 获取与流相关的自定义音效会话ID。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:效果会话ID
  • (-3):流未初始化
  • (-2):未分配效果会话

getAudioFocusSessionIdAsync()

getAudioFocusSessionIdAsync(): Promise<Int32> 获取与流相关的音频焦点会话ID。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:焦点会话ID
  • (-3):流未初始化
  • (-2):未分配焦点会话

示例


getBufferCountAsync()

getBufferCountAsync(): Promise<Int32> 获取为此流配置的缓冲区数量。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:缓冲区数量
  • (-3):流未初始化
  • (-5):服务器通信错误

getChannelCountAsync()

getChannelCountAsync(): Promise<Int32> 获取播放流的频道数。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:频道数量
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getDuckingPolicyAsync()

getDuckingPolicyAsync(): Promise<Int32> 获取流的当前放弃策略。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • (0):系统会自动处理放弃
  • (1):应用必须处理放弃
或显示以下拒绝结果:
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getFramesPerBufferAsync()

getFramesPerBufferAsync(): Promise<Int32> 获取为此流配置的每个缓冲区的帧数。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:每个缓冲区的帧数
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getLatencyInMsAsync()

getLatencyInMsAsync(): Promise<Int32> 以毫秒为单位获取播放流的当前延迟。这包括缓冲和硬件延迟。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:延迟(单位:毫秒)
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getMajorVersion()

static getMajorVersion(): number 获取AudioRecordStream实现的主版本号。可用于进行版本检查。

返回值

number number 主版本号

getMinorVersion()

static getMinorVersion(): number 获取AudioRecordStream实现的次版本号。可用于进行版本检查。

返回值

number number 次版本号

getNumBytesInPipelineAsync()

getNumBytesInPipelineAsync(): Promise<Int32> 获取当前播放管道中等待播放的字节数。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:管道中的字节数
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getNumBytesOfNativeBufferAsync()

getNumBytesOfNativeBufferAsync(): Promise<Int32> 获取用于播放的原生缓冲区的大小。这表示可以排队等待播放的最大数据量。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:缓冲区大小(单位:字节)
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getPatchVersion()

static getPatchVersion(): number 获取AudioRecordStream实现的补丁版本号。可用于进行版本检查。

返回值

number number 补丁版本号

getPresentedFrameCountAsync()

getPresentedFrameCountAsync(): Promise<Int32> 获取已播放的总帧数。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:成功时播放到音频管道的帧数。
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getSampleRateAsync()

getSampleRateAsync(): Promise<Int32> 获取播放流的采样率。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:采样率(单位:Hz)
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getSampleSizeAsync()

getSampleSizeAsync(): Promise<Int32> 获取播放流的样本大小(单位:位)。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:以位为单位的样本大小(例如16、24、32)
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getUnderrunCountAsync()

getUnderrunCountAsync(): Promise<Int32> 获取欠载出现次数的总数。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:流生命周期内发生的欠载次数。
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getUnderrunSizeAsync()

getUnderrunSizeAsync(): Promise<Int32> 获取欠载大小(以帧为单位)。当播放缓冲区变为空时,会出现欠载。 如果客户端设置了缓冲区欠载阈值且播放缓冲区处于欠载状态,此API将返回缓冲区大小和阈值之间的差值。 否则,此API将返回0。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 正值:缓冲区大小和欠载阈值之间的帧数差异。帧值向上舍入。
  • 0:没有欠载
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


getVolumeAsync()

getVolumeAsync(): Promise<Int32> 获取流的当前音量水平。

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • 0-100:当前音量水平
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


initCheckAsync()

initCheckAsync(): Promise<AudioStatus> 验证播放流是否已正确初始化。必须在使用其他方法之前调用,以确保流准备就绪。

返回值

Promise<AudioStatus> Promise 解析为如下的Promise:
  • (0):流已正确初始化
  • (-3):流未初始化
  • (-5):服务器通信错误

示例


pauseAsync()

pauseAsync(): Promise<AudioStatus> 暂停流的播放。缓冲区中的数据会被保留,可以使用startAsync恢复播放。

返回值

Promise<AudioStatus> Promise 解析为如下的Promise:
  • (0):成功暂停
  • (-3):流未初始化
  • (-8):流已经暂停
  • (-5):服务器通信错误

示例


queryMinimumBufferInfoAsync()

queryMinimumBufferInfoAsync(): Promise<Object> 获取最小缓冲区信息

返回值

Promise<Object> Promise 包含字段minFramesPerBuffer和minBufferCount的对象

registerEventObserverAsync()

registerEventObserverAsync(callback: (value: any) => void): Promise<AudioStatus> 注册一个回调来接收播放流事件。一次只能注册一个回调。

参数

callback
(value: any) => void 接收事件的函数。事件包括:
  • (0):流失败
  • (1):流已从故障中恢复
  • (2):播放已停止
  • (3):流静音状态已更改
  • (4):出现缓冲区欠载的情况

返回值

Promise<AudioStatus> Promise 解析为如下的Promise:
  • (0):回调注册成功
  • (-3):流未初始化
  • (-2):回调无效
  • (-4):回调已注册

示例


setVolumeAsync()

setVolumeAsync(gain: Int32): Promise<Int32> 按百分比形式的绝对增益设置单个流的音量。设置单个流的增益;它将乘以流音量。这与系统音量无关。

参数

gain
Int32 音量水平 (0-100)

返回值

Promise<Int32> Promise 解析为如下的Promise:
  • (0):音量设置成功
  • (-3):流未初始化
  • (-2):增益值无效
  • (-5):服务器通信错误

示例


setVolumeWithFadeAsync()

setVolumeWithFadeAsync(volume: Int32, duration: Int32, fadeType: AudioFadeType): Promise<Int32> 使用渐变效果设置流的音量。

参数

volume
Int32 目标音量 (0-100)
duration
Int32 持续时间(单位:毫秒)
fadeType
AudioFadeType 渐变曲线类型

返回值

Promise<Int32> Promise 发起fade时解析的Promise
  • (0):音量设置成功
  • (-3):流未初始化
  • (-2):增益值无效
  • (-5):服务器通信错误

startAsync()

startAsync(): Promise<AudioStatus> 开始或恢复流的播放。

返回值

Promise<AudioStatus> Promise 解析为如下的Promise:
  • (0):成功启动
  • (-3):流未初始化
  • (-8):流已经在播放
  • (-5):服务器通信错误

示例


stopAsync()

stopAsync(): Promise<AudioStatus> 停止播放并清除所有缓冲区。与pauseAsync不同,这会丢弃所有缓冲的数据。

返回值

Promise<AudioStatus> Promise 解析为如下的Promise:
  • (0):成功停止
  • (-3):流未初始化
  • (-8):流已经停止
  • (-5):服务器通信错误

示例


unregisterEventObserverAsync()

unregisterEventObserverAsync(): Promise<AudioStatus> 取消注册之前注册的事件回调。

返回值

Promise<AudioStatus> Promise 解析为如下的Promise:
  • (0):回调注销成功
  • (-3):流未初始化
  • (-2):未注册任何回调

示例


writeAsync()

writeAsync(buffer: ArrayBuffer): Promise<AudioStatus> 将音频数据写入播放缓冲区。

参数

buffer
ArrayBuffer 要写入的音频数据

返回值

Promise<AudioStatus> Promise 解析为如下的Promise:
  • 正值:写入的字节数
  • (-3):流未初始化
  • (-2):缓冲区无效
  • (-8):写入操作失败
  • (-6):缓冲区已满
  • (-5):服务器通信错误

示例


最后修改于 2026年10月26日