Tone.js未在iOS上播放音频



我有一个使用Tone.js的应用程序,我专门使用GrainPlayer对象。它在不同操作系统和设备的不同浏览器上运行得非常好。。。iOS除外。我个人没有iOS设备,但客户向我显示iOS没有播放音频。它也不局限于狩猎;设备上的其他浏览器也不会播放音频。

我知道这是一个特定于Tone.js的问题,因为我也使用Howler.js来处理一些不需要Tone GrainPlayer类的声音,以及这些工作。一般来说,这也不是AudioContext的问题,因为我有以下代码:

Tone.setContext(Howler.ctx);

这确保音调的AudioContext通过Howler的AudioCntext进行路由。

有办法让它发挥作用吗?我需要继续使用GrainPlayer,因为它具有独特的属性和功能,所以很遗憾,切换出来对我来说不起作用。我没有办法从开发者的角度来诊断它,因为我没有iOS设备,即使这样,他们也没有办法打开开发者控制台。。。但它似乎并没有破坏代码或任何东西,只是似乎"忽略"了播放的声音,然后继续前进

有问题的声音是这样产生的:

standardChord[0] = new Tone.GrainPlayer('/A.flac').connect(Howler.masterGain);

然后当需要播放时:

standardChord[0].start();

正如我所说,它在其他设备上运行良好。

最后,不确定这是否重要,但这是我正在运行的Meteor应用程序,绑定到Node.js中进行部署。

在我的项目中,我有一行简单的代码可以在我的initAudio()方法中完成任务:

// necessary for Safari
synth.context.resume();

CCD_ 5只是一个多同步振荡器。

但如果iPhone或iOS设备处于静音状态,则此解决方案不起作用。

ps。在iOS 16.2 上测试

最新更新