AudioContext.decodeAudioData
基础库 1.34.0 开始支持本方法,低版本需做兼容处理。
用于异步解码音频文件, 并以 ArrayBuffer 的形式返回音频文件中的内容。该方法返回一个 Promise 对象。
其中,音频文件数据可以通过 XMLHttpRequest 来获取。解码得到的 AudioBuffer 的数据可以通过 AudioBufferSourceNode 进行播放。
语法
AudioContext.decodeAudioData(audioData)
参数说明
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
audioData | ArrayBuffer | 是 | 要解码的音频数据 |
返回值
解码完成后返回的 ArrayBuffer 格式的数据。
代码示例
// 创建一个 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();
Bug & Tip
暂无。
点击纠错
该文档是否对你的开发有所帮助?
有帮助
没帮助
该文档是否对你的开发有所帮助?
有帮助
没帮助