Javascript Web音频Api:与运行时间相关的频率

Javascript Web音频Api:与运行时间相关的频率,javascript,google-chrome,html5-audio,web-audio-api,Javascript,Google Chrome,Html5 Audio,Web Audio Api,我有一个获取音频的脚本。我想把频率和歌曲的准确时间联系起来。我可以获取webkitAudioContext currentTime属性,但这并不准确,因为它在歌曲开始之前将声音保存到缓冲区时开始计算时间。 这是我的代码: var context = new webkitAudioContext(); 函数绘图谱图(数组){ //将当前画布复制到临时画布上 var canvas=document.getElementById(“canvas”); drawImage(画布,0,0,800,51

我有一个获取音频的脚本。我想把频率和歌曲的准确时间联系起来。我可以获取webkitAudioContext currentTime属性,但这并不准确,因为它在歌曲开始之前将声音保存到缓冲区时开始计算时间。 这是我的代码:

var context = new webkitAudioContext();

函数绘图谱图(数组){
//将当前画布复制到临时画布上
var canvas=document.getElementById(“canvas”);
drawImage(画布,0,0,800,512);
//迭代数组中的元素
对于(var i=0;i
}


谢谢大家!

我不太确定您想要的是什么,但您可能想看看高分辨率时间API:


您可以在调用感兴趣的缓冲区上的.noteOn()或.start()的同时获取当前时间,然后在DrawSpectrogram函数中确定执行所需操作所需的时间。

在准备开始播放之前保存
currentTime
的值,并将该时间值用作“零时间”标记。每当您想知道音乐播放了多长时间时,请从
currentTime
值中减去该时间值(表示设置花费了多长时间)

var context = new webkitAudioContext();

// load media, place in buffer, etc...

var startTime = context.currentTime; // everything up to now has been setup

// begin playing...

var currentPlayingTime = context.currentTime - startTime;
只需使用
context.currentTime-startTime
查找歌曲实际播放的时间

var context = new webkitAudioContext();

// load media, place in buffer, etc...

var startTime = context.currentTime; // everything up to now has been setup

// begin playing...

var currentPlayingTime = context.currentTime - startTime;