我目前在 Safari 10.1 中遇到 Tone.Analyzer
问题。
使用 size > Math.pow(2, 10)
(1024) 初始化 Tone.Analyzer
时,出现以下错误:
IndexSizeError(DOM 异常 1):索引不在允许的范围内。
我也 submitted this to the ToneJS repository ,但我觉得这更像是 Safari 中的一个错误,对吗?
代码
import Tone from 'tone';
const sampleSize = Math.pow(2, 13); // Math.pow(2, 10); works...
this.fft = new Tone.Analyser('fft', sampleSize);
this.panVol = new Tone.PanVol().fan(this.fft).toMaster();
但是,我在interwebz上找不到任何信息,哪个浏览器接受哪个尺寸,while the Tone.js documentation提到,值必须是 32 到 32768 范围内的 2 的幂。
(Same as in the Web Audio API documentation)
Safaris Audio API getByteFrequencyData 是否没有实现更大的大小? 希望实现高精度均衡器,但对于较低频率,样本大小需要 > 4000。
最佳答案
WebAudio 规范的早期版本表示 2048 是 AnalyserNode
的最大 FFT 大小。后来的版本将限制设置为至少 32k,Safari 仍然实现旧的限制。
关于javascript - 索引不在允许的范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43606218/