我目前在Safari 10.1中遇到Tone.Analyzer
问题。
用Tone.Analyzer
(1024)初始化size > Math.pow(2, 10)
时,出现以下错误:IndexSizeError (DOM Exception 1): The index is not in the allowed range.
我也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();
Link to WebpackBin example
但是,我在interwebz上找不到任何信息,哪种浏览器可以接受while the Tone.js documentation提到的
the Value must be a power of two in the range 32 to 32768.
(Same as in the Web Audio API documentation)的大小。Safaris音频API getByteFrequencyData是否没有实现更大的大小?
很想实现一个高精度的均衡器,但是对于较低的频率,样本大小必须> 4000。
最佳答案
WebAudio规范的早期版本表示2048是AnalyserNode
的最大FFT大小。更高版本的限制至少为32k,而Safari仍实施旧限制。