AudioWorkletGlobalScope: currentFrame 属性
AudioWorkletGlobalScope
接口的只读 currentFrame
属性返回一个整数,表示正在处理的音频块的不断增长的当前采样帧。在处理完每个音频块后,它会递增 128(渲染量子的大小)。
价值
一个整数。
示例
AudioWorkletProcessor
可以访问特定 AudioWorkletGlobalScope
属性
js
// AudioWorkletProcessor defined in : test-processor.js
class TestProcessor extends AudioWorkletProcessor {
constructor() {
super();
// Logs the current sample-frame and time at the moment of instantiation.
// They are accessible from the AudioWorkletGlobalScope.
console.log(currentFrame);
console.log(currentTime);
}
// The process method is required - output silence,
// which the outputs are already filled with.
process(inputs, outputs, parameters) {
return true;
}
}
// Logs the sample rate, that is not going to change ever,
// because it's a read-only property of a BaseAudioContext
// and is set only during its instantiation.
console.log(sampleRate);
// You can declare any variables and use them in your processors
// for example it may be an ArrayBuffer with a wavetable.
const usefulVariable = 42;
console.log(usefulVariable);
registerProcessor("test-processor", TestProcessor);
主脚本加载处理器,创建 AudioWorkletNode
的实例,将处理器的名称传递给它,并将节点连接到音频图。我们应该在控制台中看到 console.log()
调用的输出
js
const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("test-processor.js");
const testNode = new AudioWorkletNode(audioContext, "test-processor");
testNode.connect(audioContext.destination);
规范
规范 |
---|
Web 音频 API # dom-audioworkletglobalscope-currentframe |
浏览器兼容性
BCD 表只在浏览器中加载