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

设置监听器的位置