AudioContext.createBufferSource收藏我的收藏
收藏
我的收藏基础库 1.34.0 开始支持本方法,这是一个同步方法。
创建一个新的 AudioBufferSourceNode 节点, 该节点可以播放 AudioBuffer 对象的音频数据。
AudioBuffer 对象可以通过 AudioContext.createBuffer 来创建或者通过 AudioContext.decodeAudioData 成功解码音轨后获取。
前提条件 | 无 |
业务背景 | 无 |
使用限制 | 无 |
注意事项 | 无 |
相关教程 | 无 |
语法
AudioContext.createBufferSource()
参数说明
无
返回值
类型 | 说明 | 最低支持版本 |
---|---|---|
object | 1.34.0 |
代码示例
// 1. 创建一个 AudioContext const ctx = tt.getAudioContext(); // 2. 创建一个长度为 3s 的正弦波形 const buf = ctx.createBuffer(2, ctx.sampleRate * 3, ctx.sampleRate); for (let channel = 0; channel < buf.numberOfChannels; channel++) { // 获取频道的数据 const arr = buf.getChannelData(channel); for (let i = 0; i < buf.length; i++) { // 限制峰值,防止混声溢出 arr[i] = Math.sin((i / ctx.sampleRate) * 400 * Math.PI * 2) * 0.6; } } const source = ctx.createBufferSource(); source.buffer = buf; source.connect(ctx.destination); source.start(); source.onended = function () { console.log("onended called", this); };
点击纠错