所需权限
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%
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):服务器通信错误

