InnerAudioContext

InnerAudioContext 实例,可通过 wx.createInnerAudioContext 接口获取实例。注意,音频播放过程中,可能被系统中断,可通过 wx.onAudioInterruptionBegin、wx.onAudioInterruptionEnd事件来处理这种情况。

属性

string src

音频资源的地址,用于直接播放。2.2.3 开始支持云文件ID

number startTime

开始播放的位置(单位:s),默认为 0

boolean autoplay

是否自动开始播放,默认为 false

boolean loop

是否循环播放,默认为 false

boolean obeyMuteSwitch

是否遵循系统静音开关,默认为 true。当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音。从 2.3.0 版本开始此参数不生效,使用 wx.setInnerAudioOption 接口统一设置。

number volume

基础库 1.9.90 开始支持,低版本需做兼容处理。

音量。范围 0~1。默认为 1

number playbackRate

基础库 2.11.0 开始支持,低版本需做兼容处理。

播放速度。范围 0.5-2.0,默认为 1。(Android 需要 6 及以上版本)

number duration

当前音频的长度(单位 s)。只有在当前有合法的 src 时返回(只读)

number currentTime

当前音频的播放位置(单位 s)。只有在当前有合法的 src 时返回,时间保留小数点后 6 位(currentTime 属性在基础库 2.26.2 之前只读,基础库 2.26.2 开始可读可写,改变 currentTime 值等同于调用 seek)

boolean paused

当前是是否暂停或停止状态(只读)

number buffered

音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲(只读)

string referrerPolicy

基础库 2.13.0 开始支持,低版本需做兼容处理。

origin: 发送完整的referrer; no-referrer: 不发送。格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为微信小程序的 appid,{version} 为微信小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本;

方法

InnerAudioContext.play()

播放

InnerAudioContext.pause()

暂停。暂停后的音频再播放会从暂停处开始播放

InnerAudioContext.stop()

停止。停止后的音频再播放会从头开始播放。

InnerAudioContext.seek(number position)

跳转到指定位置

InnerAudioContext.destroy()

销毁当前实例

InnerAudioContext.onCanplay(function listener)

监听音频进入可以播放状态的事件。但不保证后面可以流畅播放

InnerAudioContext.offCanplay(function listener)

移除音频进入可以播放状态的事件的监听函数

InnerAudioContext.onPlay(function listener)

监听音频播放事件

InnerAudioContext.offPlay(function listener)

移除音频播放事件的监听函数

InnerAudioContext.onPause(function listener)

监听音频暂停事件

InnerAudioContext.offPause(function listener)

移除音频暂停事件的监听函数

InnerAudioContext.onStop(function listener)

监听音频停止事件

InnerAudioContext.offStop(function listener)

移除音频停止事件的监听函数

InnerAudioContext.onEnded(function listener)

监听音频自然播放至结束的事件

InnerAudioContext.offEnded(function listener)

移除音频自然播放至结束的事件的监听函数

InnerAudioContext.onTimeUpdate(function listener)

监听音频播放进度更新事件

InnerAudioContext.offTimeUpdate(function listener)

移除音频播放进度更新事件的监听函数

InnerAudioContext.onError(function listener)

监听音频播放错误事件

InnerAudioContext.offError(function listener)

移除音频播放错误事件的监听函数

InnerAudioContext.onWaiting(function listener)

监听音频加载中事件。当音频因为数据不足,需要停下来加载时会触发

InnerAudioContext.offWaiting(function listener)

移除音频加载中事件的监听函数

InnerAudioContext.onSeeking(function listener)

监听音频进行跳转操作的事件

InnerAudioContext.offSeeking(function listener)

移除音频进行跳转操作的事件的监听函数

InnerAudioContext.onSeeked(function listener)

监听音频完成跳转操作的事件

InnerAudioContext.offSeeked(function listener)

移除音频完成跳转操作的事件的监听函数

支持格式

格式 iOS Android
flac x √
m4a √ √
ogg x √
ape x √
amr x √
wma x √
wav √ √
mp3 √ √
mp4 x √
aac √ √
aiff √ x
caf √ x

示例代码

const innerAudioContext = wx.createInnerAudioContext()
innerAudioContext.autoplay = true
innerAudioContext.src = 'https://wx_test.mp3'
innerAudioContext.onPlay(() => {
  console.log('开始播放')
})
innerAudioContext.onError((res) => {
  console.log(res.errMsg)
  console.log(res.errCode)
})

BufferSourceNode.start(number when, number offset, number duration)

微信小程序插件:不支持

微信 Windows 版:支持

微信 Mac 版:支持

功能描述

音频源开始播放

参数

number when

延迟播放的时间,单位是秒。与 AudioContext 使用相同的时间坐标系统。如果 when 小于 AudioContext.currentTime,或者是 0,声音会立即播放。默认值是 0

number offset

音频开始播放的位置,单位是秒。默认值是 0

number duration

音频播放的持续时间,单位是秒。如果这个参数没有被指定,声音会播放到自然结束,或者通过调用 stop() 方法结束。使用这个参数的效果与调用 start(when, offset) 后再调用 stop(when+duration) 完全相同

BufferSourceNode.connect(AudioNode|AudioParamdestination)

微信小程序插件:不支持

微信 Windows 版:支持

微信 Mac 版:支持

功能描述

连接到一个指定目标。这个指定的目标可能是另一个 AudioNode(从而将音频数据引导到下一个指定节点)或一个 AudioParam,以便上一个节点的输出数据随着时间流逝能自动地对下一个参数值进行改变

参数

AudioNode|AudioParam destination

要建立连接的目标节点

BufferSourceNode

音频源节点,通过 WebAudioContext.createBufferSource 方法获得。

属性

AudioBuffer buffer

是一个 AudioBuffer,它定义了要播放的音频。当把它的值设置为 0 时,它会定义一个静默的单通道。(可读可写)

Boolean loop

定义音频是否循环播放(可读可写)

number loopStart

定义音频循环播放时,开始播放的位置。单位是秒,默认值是 0(可读可写)

number loopEnd

定义音频循环播放时,结束播放的位置。单位是秒,默认值是 0(可读可写)

AudioParam playbackRate

定义音频的播放倍速,数值越大速度越快,默认速度是 1.0,有效范围为 0 < playbackRate <= 2.0(可读可写)

function onended

定义音频播放结束事件的回调函数(可读可写)

方法

BufferSourceNode.connect(AudioNode|AudioParam destination)

连接到一个指定目标。这个指定的目标可能是另一个 AudioNode(从而将音频数据引导到下一个指定节点),也可能是一个 AudioParam,以便上一个节点的输出数据随着时间流逝能自动地对下一个参数值进行改变

BufferSourceNode.disconnect()

与已连接的目标节点断开连接

BufferSourceNode.start(number when, number offset, number duration)

音频源开始播放

BufferSourceNode.stop(number when)

停止播放

示例代码

const source = audioCtx.createBufferSource()
source.buffer = AudioBuffer
source.connect(audioCtx.destination)
source.start()

AudioParam

基础库 2.19.0 开始支持,低版本需做兼容处理。

AudioParam 接口代表音频相关的参数,通常是 AudioNode(例如 GainNode.gain)的参数

属性

number defaultValue

代表被具体的 AudioNode 创建的 AudioParam 的属性的初始值(只读)

number maxValue

代表参数有效范围的最大可能值(只读)

number minValue

代表参数有效范围的最小可能值(只读)

number value

当前属性的值(比如音量值或播放倍速值)(可读可写)

AudioListener

空间音频监听器,代表在一个音频场景内唯一的位置和方向信息。

属性

number positionX

右手笛卡尔坐标系中X轴的位置。

number positionY

右手笛卡尔坐标系中Y轴的位置。

number positionZ

右手笛卡尔坐标系中Z轴的位置。

number forwardX

表示监听器的前向方向在同一笛卡尔坐标系中的水平位置,作为位置(位置x、位置y和位置z)值。

number forwardY

表示监听器的前向方向在同一笛卡尔坐标系中作为位置(位置x、位置y和位置z)值的垂直位置。

number forwardZ

表示与position (positionX、positionY和positionZ)值在同一笛卡尔坐标系下的监听器前进方向的纵向(前后)位置。

number upX

表示在与position (positionX、positionY和positionZ)值相同的笛卡尔坐标系中监听器向前方向的水平位置。

number upY

表示在与position (positionX、positionY和positionZ)值相同的笛卡尔坐标系中监听器向上方向的水平位置。

number upZ

表示在与position (positionX、positionY和positionZ)值相同的笛卡尔坐标系中监听器向后方向的水平位置。

function setOrientation

设置监听器的方向

function setPosition

设置监听器的位置