普通小游戏开发
开放能力(必读)
社交转发裂变
数据分析
视频拍摄器
API
多端支持

AudioContext.createBufferSource

基础库 1.34.0 开始支持本方法,低版本需做兼容处理。这是一个同步 API。

创建一个新的 AudioBufferSourceNode 节点, 该节点可以播放 AudioBuffer 对象的音频数据。

AudioBuffer 对象可以通过 AudioContext.createBuffer 来创建或者通过 AudioContext.decodeAudioData 成功解码音轨后获取。

语法

AudioContext.createBufferSource()

参数说明

返回值

AudioBufferSourceNode 对象。

代码示例

// 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);
};

Bug & Tip

暂无。

点击纠错
该文档是否对你的开发有所帮助?
有帮助
没帮助
该文档是否对你的开发有所帮助?
有帮助
没帮助