抖音开放平台Logo
控制台

AudioContext.decodeAudioData
收藏
我的收藏

基础库 1.34.0 开始支持本方法,这是一个同步方法。

用于异步解码音频文件, 并以 ArrayBuffer 的形式返回音频文件中的内容。该方法返回一个 Promise 对象。

其中,音频文件数据可以通过 XMLHttpRequest 来获取。解码得到的 AudioBuffer 的数据可以通过 AudioBufferSourceNode 进行播放。

前提条件
业务背景
使用限制
注意事项
相关教程

语法

AudioContext.decodeAudioData(audioData)

参数说明

audioData

类型默认值必填说明最低支持版本
arrayBuffer

要解码的音频数据

1.34.0

返回值

类型说明最低支持版本
Promise

Promise对象,解码完成后返回 ArrayBuffer 格式的数据。

1.34.0

代码示例

//  创建一个 AudioContext
const ctx = tt.getAudioContext();
let request = new XMLHttpRequest();
request.open("GET", "test.ogg", true);
request.responseType = "arraybuffer";

request.onload = function () {
  let audioData = request.response;
  ctx
    .decodeAudioData(audioData)
    .then((audioBuffer) => {
      console.log(audioBuffer);
      const source = ctx.createBufferSource();
      source.buffer = audioBuffer;
      source.connect(ctx.destination);
      source.loop = true;
      source.start();
      source.onended = function () {
        console.log("onended called", this);
      };
    })
    .catch((err) => {
      console.error("解码出错", err);
    });
};

request.send();