- API 概览
- 开放能力
- 基础
- 渲染
- 设备
- 文件
- 位置
- 媒体
- 网络
- 游戏转发分享
- 实时语音
- 数据缓存
- 系统
- 广告
- 界面
- 支付
- Worker
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();
该文档是否有帮助?
点击纠错