AudioContext:getOutputTimestamp() 方法
AudioContext 介面的 getOutputTimestamp() 方法返回一個新的 AudioTimestamp 物件,其中包含與當前音訊上下文相關的兩個音訊時間戳值。
這兩個值如下:
AudioTimestamp.contextTime:音訊輸出裝置當前正在渲染的取樣幀的時間(即,輸出音訊流的位置),單位和原點與上下文的AudioContext.currentTime相同。基本上,這是音訊上下文首次建立後的時間。AudioTimestamp.performanceTime:一個估算值,表示與儲存的contextTime值對應的取樣幀被音訊輸出裝置渲染的時刻,單位和原點與performance.now()相同。這是包含音訊上下文的文件首次渲染後的時間。
語法
js
getOutputTimestamp()
引數
無。
返回值
一個 AudioTimestamp 物件,它具有以下屬性。
contextTime:BaseAudioContext的時間座標系統中的一個點;音訊上下文首次建立後的時間。performanceTime:Performance介面的時間座標系統中的一個點;包含音訊上下文的文件首次渲染後的時間。
示例
在下面的程式碼中,我們在播放按鈕被點選後開始播放音訊檔案,並啟動一個 requestAnimationFrame 迴圈,該迴圈會不斷輸出 contextTime 和 performanceTime。
您可以在 output-timestamp 的完整程式碼(也可以線上檢視)中找到此示例。
js
// Press the play button
playBtn.addEventListener("click", () => {
// We can create the audioCtx as there has been some user action
audioCtx ??= new AudioContext();
source = new AudioBufferSourceNode(audioCtx);
getData();
source.start(0);
playBtn.disabled = true;
stopBtn.disabled = false;
rAF = requestAnimationFrame(outputTimestamps);
});
// Press the stop button
stopBtn.addEventListener("click", () => {
source.stop(0);
playBtn.disabled = false;
stopBtn.disabled = true;
cancelAnimationFrame(rAF);
});
// Helper function to output timestamps
function outputTimestamps() {
const ts = audioCtx.getOutputTimestamp();
output.textContent = `Context time: ${ts.contextTime} | Performance time: ${ts.performanceTime}`;
rAF = requestAnimationFrame(outputTimestamps); // Reregister itself
}
規範
| 規範 |
|---|
| Web Audio API # dom-audiocontext-getoutputtimestamp |
瀏覽器相容性
載入中…