javascript - 索引不在允许的范围内

标签 javascript safari web-audio-api

我目前在 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();

Link to WebpackBin example

但是,我在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/

相关文章:

javascript - 如何以简单的方式禁用 JavaScript 的执行?

javascript - Webpack CommonsChunkPlugin 没有按预期工作

javascript - 通过 AJAX 从通过 ajax 加载的页面加载特定的 html 内容

javascript - 发送 POST 数据时阻止 Safari 规范化 Unicode?

javascript - 多个振荡器尖叫,增益对 WebAudio 没有影响

javascript - Tone.js - AudioContext 不允许启动

javascript - 通过包装和减少执行语句来提高 Javascript 性能

html - 使用-webkit-overflow-scrolling 安全吗?

Javascript setinterval 函数在 MAC safari 上不起作用

javascript - 使用 Web Audio API 创建完整轨道的波形