【发布时间】:2023-01-26 23:53:14
【问题描述】:
我有一个使用 Tone.js 的应用程序,我专门使用 GrainPlayer 对象。 它在不同操作系统和设备的不同浏览器上工作得很好...... 除了iOS。我个人没有 iOS 设备,但客户告诉我 iOS 没有播放音频。它也不限于野生动物园;他们设备上的其他浏览器也不会播放音频。
我知道这是一个特定于 Tone.js 的问题,因为我也将 Howler.js 用于一些不需要 Tone GrainPlayer 类的声音,并且这些声音有效。一般来说,这也不是 AudioContext 问题,因为我有以下代码:
Tone.setContext(Howler.ctx);
这确保了 Tone 的 AudioContext 通过 Howler 的 AudioContext 进行路由。
有没有办法让它播放?由于其独特的属性和功能,我需要继续使用 GrainPlayer,因此不幸的是,切换出去对我来说不是一个解决方案。 我无法从开发人员的角度对其进行诊断,因为我又没有 iOS 设备,即便如此,他们也无法启动开发人员控制台…… 但它似乎并没有破坏代码或任何东西,只是它似乎“忽略”了播放的声音,然后继续前进。
有问题的声音是这样创建的:
standardChord[0] = new Tone.GrainPlayer('/A.flac').connect(Howler.masterGain);
然后在需要播放时:
standardChord[0].start();
就像我说的那样,在其他设备上运行良好。
最后,不确定这是否重要,但它是我正在运行的 Meteor 应用程序,捆绑到 Node.js 中进行部署。
【问题讨论】:
-
找到任何解决方案?我遇到了同样的问题......