如何通过 Ogg Vorbis 字节缓冲区获取采样率

How to get sample rate by Ogg Vorbis Byte Buffer

我正在 OggVorbis header 中寻找包含采样率的字节范围。在specification中写着这个信息在标识header

规范here显示标识header:

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

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

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

但是不行。

Note: I don't want to use the Audio API to get the sample rate.

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

你所要做的就是从 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];