使用网络音频获取音频标记/提示点 API

Getting audio markers / cue points with the Web Audio API

如果我有一个包含标记(或“提示点”)的 WAV 格式的音频文件,有没有办法获取这些标记的数组,最好使用网络音频 API?

我好像记得以前看到过这样的方法,但是我好像找不到了。

任何帮助或建议都会很棒!

Web Audio API 不支持解析 WAVE-RIFF 中的标记块 ("cue "s),仅支持音频数据本身。

在将文件加载为 ArrayBuffer(与网络音频 API 本身无关)后,您必须使用类型化数组和 DataView 手动解析和提取标记块。

提供的解决方案有点宽泛,但this article应该能够为您指明正确的方向。

今天我偶然发现了 a repository which supports the retrieval of cue markers,以及大量其他有用的功能。它非常适合我想要做的事情:

var request = new XMLHttpRequest();
request.open("GET", "file.wav", true);
request.responseType = "arraybuffer";
request.onreadystatechange = function() {
    if (this.readyState === 4 && this.status === 200) {
        var wave = new WaveFile(new Uint8Array(this.response));
        console.log(wave.listCuePoints()); // Works perfectly
    }
};
request.send();

它可以在浏览器和 Node.js 上运行,太棒了!