我想创建一个JS库来检测歌曲BPM.
我读过这篇 文章并理解了算法.
获得10秒声能数据是否正确?我是新手.如果您不理解代码的某些部分,请询问
var audioFileInput = document.querySelector('#audio-file-input');
var audioCtx = new AudioContext();
// call countBpm function on "change" event in audioFileInput
audioFileInput.onchange = function() {
var file = this.files[0];
var reader = new FileReader();
reader.onload = function() {
countBpm(reader.result)
};
reader.readAsArrayBuffer(file);
};
function countBpm(buffer) {
audioCtx.decodeAudioData(buffer, function(decodedData) {
var dataFromLeftChannel = getSoundDataFromMiddle(decodedData, 'left');
var dataFromRightChannel = getSoundDataFromMiddle(decodedData, 'right');
console.dir(dataFromLeftChannel);
console.dir(dataFromRightChannel);
// code to detect bpm will be here
})
};
// get 10 seconds sound energy data from …Run Code Online (Sandbox Code Playgroud)