我正在使用Web Audio API处理音频流-我的服务器在前端提供音频流和React客户端。
代码从HTML音频元素创建AnalyserNode,然后将音频数据从getByteTimeDomainData发送到各种可视化组件。但是,在移动iOS设备上,该数据是完整的128个数组-仅保持沉默。音频本身可以正常播放,但是由于数据不存在,因此所有可视化都无法正常工作。
在PC,Macbook和Android手机上,一切似乎都对我有用。唯一无法使用的地方是在移动iOS设备上。
我已经检查过的东西:
没有控制台错误
我所有的音频上下文内容都在用户手势的调用堆栈中设置
音频上下文处于“运行”状态,未暂停
可在非iOS设备的Chrome和Firefox上正常运行
不适用于任何移动iOS设备的Chrome或Safari
该项目已部署到https://blackwright.github.io/ltly/,并且可以在https://github.com/blackwright/ltly看到源代码
具体而言,可以在以下位置找到用于设置音频上下文的代码:
https://github.com/blackwright/ltly/blob/master/src/App.tsx#L54
从AnalyserNode传递数据的代码可以在以下位置找到:
https://github.com/blackwright/ltly/blob/master/src/components/Analyser/index.tsx#L31