# WebAudioContext

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

WebAudioContext 实例,通过wx.createWebAudioContext 接口获取该实例。

# 属性

# string state

当前WebAudio上下文的状态。可能的值如下:suspended(暂停)、running(正在运行)、closed(已关闭)。需要注意的是,不要在 audioContext close后再访问state属性

# function onstatechange

可写属性,开发者可以对该属性设置一个监听函数,当WebAudio状态改变的时候,会触发开发者设置的监听函数。

# number currentTime

获取当前上下文的时间戳。

# WebAudioContextNode destination

当前上下文的最终目标节点,一般是音频渲染设备。

# AudioListener listener

空间音频监听器。

# number sampleRate

采样率,通常在8000-96000之间,通常44100hz的采样率最为常见。

# 方法

# Promise WebAudioContext.close()

关闭WebAudioContext

# Promise WebAudioContext.resume()

同步恢复已经被暂停的WebAudioContext上下文

# Promise WebAudioContext.suspend()

同步暂停WebAudioContext上下文

# IIRFilterNode WebAudioContext.createIIRFilter(Array.<number> feedforward, Array.<number> feedback)

创建一个IIRFilterNode

# WaveShaperNode WebAudioContext.createWaveShaper()

创建一个WaveShaperNode

# ConstantSourceNode WebAudioContext.createConstantSource()

创建一个ConstantSourceNode

# OscillatorNode WebAudioContext.createOscillator()

创建一个OscillatorNode

# GainNode WebAudioContext.createGain()

创建一个GainNode

# PeriodicWaveNode WebAudioContext.createPeriodicWave(Float32Array real, Float32Array imag, object constraints)

创建一个PeriodicWaveNode

# BiquadFilterNode WebAudioContext.createBiquadFilter()

创建一个BiquadFilterNode

# BufferSourceNode WebAudioContext.createBufferSource()

创建一个BufferSourceNode实例,通过AudioBuffer对象来播放音频数据。

# ChannelMergerNode WebAudioContext.createChannelMerger(number numberOfInputs)

创建一个ChannelMergerNode

# ChannelSplitterNode WebAudioContext.createChannelSplitter(number numberOfOutputs)

创建一个ChannelSplitterNode

# DelayNode WebAudioContext.createDelay(number maxDelayTime)

创建一个DelayNode

# DynamicsCompressorNode WebAudioContext.createDynamicsCompressor()

创建一个DynamicsCompressorNode

# ScriptProcessorNode WebAudioContext.createScriptProcessor(number bufferSize, number numberOfInputChannels, number numberOfOutputChannels)

创建一个ScriptProcessorNode

# AnalyserNode WebAudioContext.createAnalyser()

创建一个 AnalyserNode 。可以用来获取音频时间和频率数据,以及实现数据可视化。

# PannerNode WebAudioContext.createPanner()

创建一个PannerNode

# AudioBuffer WebAudioContext.createBuffer(number numOfChannels, number length, number sampleRate)

创建一个AudioBuffer,代表着一段驻留在内存中的短音频

# AudioBuffer WebAudioContext.decodeAudioData(ArrayBuffer audioData, function successCallback, function errorCallback)

异步解码一段资源为AudioBuffer。

# 示例代码

// 监听状态
const audioCtx = wx.createWebAudioContext()
audioCtx.onstatechange = () => {
  console.log(ctx.state)
}
setTimeout(audioCtx.suspend, 1000)
setTimeout(audioCtx.resume, 2000)