WebAudioContext 在 iF​​rame 上暂停

WebAudioContext suspended on iFrame

从Chrome71 WebAudioContext开始,似乎AudioContext在页面上开始是悬浮的,直到满足一些要求。

其中之一是用户必须与页面交互,以便释放 AudioContext 以按预期工作。

我的公司维护着一个包含各种类型游戏的网站,由于其中许多游戏可能来自不同的游戏开发工具,因此我们使用 iFrame 来加载它们。

我的问题是我找不到从 iFrame enable/release 暂停音频的方法,用户还需要与 iFrame 交互,而不仅仅是页面本身。

我们的游戏只有在播放实际点击 iFrame 内部后才能播放音频,这很糟糕,特别是对于菜单中带有 music/sounds 的游戏。

在我自己的网页中,我找不到任何方法来证明这些 iFrame 可以执行它们的音频。

我在使用 Soundcloud Widget API 时遇到了这个问题。我的解决方案是将属性 allow="autoplay" 添加到 iframe!

对于遇到此问题的任何人,正如 Kain 评论的那样,在框架中允许 "autoplay" 确实有效。

我真正的问题是 Chrome 71 在重新加载游戏时有一个错误,上下文会再次被阻止,就好像用户来自另一个页面一样.

如果我在我的网站上点击游戏,等待页面加载,我会释放音频上下文。如果在游戏页面中,我重新加载了页面,上下文将被阻止,就好像我来自另一个页面一样。

好吧,一个错误。也许 Chrome 会在以后的更新中修复这个问题。