如何通过Ogg Vorbis Byte Buffer获取采样率

时间:2017-07-21 07:36:57

标签: javascript oggvorbis

我正在寻找包含采样率的OggVorbis标头中的字节范围。在specification中写入此信息在标识标题

规范here显示标识标题:

它说,采样率在字节12-15中找到。但是,我如何解析oggVorbis文件的字节数组以获得此采样率?

我认为标识头必须是字节数组中的第一个块,然后采样率应该是字节12-15中的整数:

const buf = buffer.slice(12, 15);
const test = new Uint32Array(buf);

但它不起作用。

  

注意:我不想使用Audio API来获取采样率。

1 个答案:

答案 0 :(得分:0)

根据规范,采样率是40到44之间的字节范围。比特率是48和52:

enter image description here

您所要做的就是从ArrayBuffer切片并将其写入Iteger:

// get sample rate
var bufferPart = buffer.slice(40, 48);
var bufferView = new Uint32Array(bufferPart);
var samplerate = bufferView[0];

// get bit rate
const bufferPart = buffer.slice(48, 52);
var bufferView = new Uint32Array(bufferPart);
var bitrate = bufferView[0];