AudioContext CreateBuffer()中的大文件问题

时间:2018-08-23 11:21:02

标签: javascript web-audio web-audio-api

我想创建一个具有1个通道,1190256000长度和48000采样率的音频缓冲区。但是我在createBuffer()方法中遇到错误。请找到包含样本的小提琴。

1 个答案:

答案 0 :(得分:0)

长度为1,190,256,000,您可能会遇到浏览器的缓冲区大小限制。如果您查看name属性,将会看到您尝试的操作导致NotSupportedError(在Chrome中,可能与其他浏览器有所不同)。

  

NotSupportedError

     

一个或多个选项为负值或其他值无效(例如numberOfChannels高于支持的值,   或sampleRate超出标称范围)。

就像尝试较低的值一样,您会成功

window.AudioContext = window.AudioContext || window.webkitAudioContext;
audioContext = new window.AudioContext();
var buffer;

try {
    audioContext.createBuffer(1, 1190256000, 48000);
} catch(e){
    console.log(e.name,e.message);
}

try {
  buffer = audioContext.createBuffer(1, 119025600, 48000);
  console.log("success",buffer);
} catch (e) {
  console.log(e.name,e.message);
}