从Chrome 71 WebAudioContext开始,似乎AudioContext从页面上的悬浮状态开始,直到满足某些要求为止。
其中之一是用户必须与页面进行交互,以便AudioContext被释放以按预期工作。
我的公司维护着一个包含各种类型游戏的网站,由于许多游戏可能来自不同的游戏开发工具,因此我们使用iFrame进行加载。
我的问题是我找不到从iFrame启用/释放暂停的音频的方法,这不仅要求页面本身,而且要求用户与iFrame进行交互。
我们的游戏只能在iFrame内部真正点击播放后才能播放音频,这非常糟糕,特别是对于菜单中带有音乐/声音的游戏。
在我自己的网页上,我找不到任何方式签名那些iFrame可以执行其音频。
答案 0 :(得分:1)
我在Soundcloud Widget API中遇到了这个问题。我的解决方案是将属性allow =“ autoplay”添加到iframe!
答案 1 :(得分:0)
对于任何有此问题的人,正如Kain所说,允许框架中的“自动播放”确实有效。
我真正的问题是我后来发现的,那就是Chrome 71在重新加载游戏时出现了一个错误,该错误会再次阻止上下文,就像用户来自另一个页面一样。
如果我单击网站上的游戏,等待页面加载,就会释放音频上下文。如果在游戏页面中重新加载了页面,则上下文将被阻止,就像我来自另一个页面一样。
嗯,一个错误。也许Chrome会在以后的更新中修复此问题。