微信小程序插件:不支持
功能描述
创建一个GainNode
微信小程序插件:不支持
创建一个 DynamicsCompressorNode(动态压缩节点)
示例代码
let audioCtx = wx.createWebAudioContext()
let compressor = audioCtx.createDynamicsCompressor()
compressor.threshold.value = -50
compressor.knee.value = 40
compressor.ratio.value = 12
compressor.attack.value = 0
compressor.release.value = 0.25
微信小程序插件:不支持
创建一个延迟节点(DelayNode)
最大延迟时间
示例代码
let audioCtx = wx.createWebAudioContext()
const delayNode = audioCtx.createDelay(5)
微信小程序插件:不支持
创建一个ChannelSplitterNode
要分别输出的输入音频流中的通道数
微信小程序插件:不支持
创建一个ChannelMergerNode
输出流中需要保持的输入流的个数
示例代码
微信小程序插件:不支持
创建一个 BufferSourceNode 实例,通过 AudioBuffer 对象来播放音频数据。
const audioCtx = wx.createWebAudioContext()
const loadAudio = (url) => {
return new Promise((resolve) => {
wx.request({
url,
responseType: 'arraybuffer',
success: res => {
console.log('res.data', res.data)
audioCtx.decodeAudioData(res.data, buffer => {
resolve(buffer)
}, err => {
console.error('decodeAudioData fail', err)
reject()
})
},
fail: res => {
console.error('request fail', res)
reject()
}
})
})
}
const play = () => {
loadAudio('xxx-test.mp3').then(buffer => {
let source = audioCtx.createBufferSource()
source.buffer = buffer
source.connect(audioCtx.destination)
source.start()
}).catch(() => {
console.log('fail')
})
}
play()
微信小程序插件:不支持
创建一个AudioBuffer,代表着一段驻留在内存中的短音频
定义了 buffer 中包含的声频通道数量的整数
代表 buffer 中的样本帧数的整数
线性音频样本的采样率,即每一秒包含的关键帧的个数
buffer 返回一个AudioBuffer实例
示例代码
const audioCtx = wx.createWebAudioContext()
const channels = 2, frameCount = audioCtx.sampleRate * 2.0
const myArrayBuffer = audioCtx.createBuffer(channels, frameCount, audioCtx.sampleRate)
基础库 2.22.0 开始支持,低版本需做兼容处理。
微信小程序插件:不支持
创建一个 AnalyserNode。可以用来获取音频时间和频率数据,以及实现数据可视化。
示例代码
const audioCtx = wx.createWebAudioContext();
const analyser = audioCtx.createAnalyser();
analyser.fftSize = 2048;
const bufferLength = analyser.fftSize;
const dataArray = new Uint8Array(bufferLength);
analyser.getByteTimeDomainData(dataArray);