1
아래에서 볼 수 있듯이 decodeAudioData()를 사용하여 오디오 파일 (wav, mp3 포함)의 채널 수를 얻는 방법을 생각할 수 있습니다. 그러나, 나는 많은 수의 CPU를 사용하는 전체 오디오 파일을 디코딩하지 않고도 채널 수를 얻을 수 있기를 원합니다.decodeAudioData()를 사용하지 않고 오디오 파일의 채널 수를 얻으려면 어떻게해야합니까?
다른 방법이 있습니까? 그렇지 않은 경우 파일의 섹션 만 디코딩 할 수 있습니까?
미리 감사드립니다.
audio_file.onchange = function() {
let files = this.files;
let file = URL.createObjectURL(files[0]);
let xhr = new XMLHttpRequest();
xhr.open('GET', file, true);
xhr.responseType = "arraybuffer";
xhr.onload =() => {
audioContext.decodeAudioData(xhr.response).then((buffer) => {
CHANNEL_COUNT = buffer.numberOfChannels;
if (CHANNEL_COUNT === 4){
document.querySelector('.status').innerHTML = 'FOA file detected';
}
else {
document.querySelector('.status').innerHTML = "Audio file with " + CHANNEL_COUNT + " channels detected";
}
});
}
xhr.send(null);
audioElement.src = file;
audioElement.load();
};