Ipad HTML5音频导致独立模式崩溃并退出IOS8主屏幕

Ipad HTML5音频导致独立模式崩溃并退出IOS8主屏幕,ipad,safari,ios8,html5-audio,ios-standalone-mode,Ipad,Safari,Ios8,Html5 Audio,Ios Standalone Mode,我有一个站点,每次javascript执行document.getElementById('audioID').load()时都会用到它或document.getElementById('audioID').play()这将导致在独立模式下运行iOS8的iPad/iPod突然崩溃并退出主屏幕。在iOS8上运行普通Safari浏览器的同一个站点工作得非常好。我也无法在iOS7上重现这个问题 此问题似乎类似于以下描述IOS8错误的堆栈问题:,只是我的问题涉及音频而不是视频,不仅无法播放音频,而且会使

我有一个站点,每次javascript执行
document.getElementById('audioID').load()时都会用到它
document.getElementById('audioID').play()这将导致在独立模式下运行iOS8的iPad/iPod突然崩溃并退出主屏幕。在iOS8上运行普通Safari浏览器的同一个站点工作得非常好。我也无法在iOS7上重现这个问题

此问题似乎类似于以下描述IOS8错误的堆栈问题:,只是我的问题涉及音频而不是视频,不仅无法播放音频,而且会使独立窗口崩溃

有没有其他人经历过这种情况,或者知道是什么原因导致独立模式崩溃

[更新]

它似乎是一个提交按钮与尝试在iOS8的独立模式下播放音频的组合将导致崩溃。我创建了一个快速要点,在这里演示这个bug:

[更新]

我在3台不同的iPad上重新测试了这个错误,以下是我的结果:

iOS 8.1.2-独立模式崩溃

iOS 8.3-无问题


iOS 9.2.1-没有问题

我遇到了相同的问题。对于一个稍微复杂的解决方案,事实证明,即使“webapp”被保存到ios主屏幕上,使用Web音频API也可以工作。见下文:

有些示例使用不推荐使用的API。例如:

  • 注释(x)现在是开始(x)
  • createGainNode()现在是createGain()

唯一的解决方案是使用Web音频API

我发现 是一个伟大的包装,使其易于使用


祝您好运

对于临时修复,我在执行音频
.load()
.play()
之前添加了以下行,从而禁用了iOS8独立模式的音频
if((navigator.appVersion.match('OS 8')&&window.navigator.standalone){return false;}