Javascript HTML5音频播放安全url
我们有一个图书播放器应用程序,可以播放故事。在点击页面时,它有该书所有音频URL的摘要。当您更改页面时,音频应自动播放。在桌面上,这一切正常,而在iOS safari上,如果没有直接的用户交互,它将无法播放。这意味着调用堆栈必须有一个用户单击事件,这也没关系,因为每次页面更改都需要单击 然而,我们最近转向了需要签名URL的CDN,我们通过ajax调用对我们的站点进行签名。由于这些URL过期,我们必须在获得签名URL后立即加载音频资产。这意味着,我们现在不是通过更改页面触发加载/播放,而是在更改页面时触发URL签名。理想情况下,URL签名的响应应该能够触发音频播放,但是,Javascript HTML5音频播放安全url,javascript,ios,html,audio,Javascript,Ios,Html,Audio,我们有一个图书播放器应用程序,可以播放故事。在点击页面时,它有该书所有音频URL的摘要。当您更改页面时,音频应自动播放。在桌面上,这一切正常,而在iOS safari上,如果没有直接的用户交互,它将无法播放。这意味着调用堆栈必须有一个用户单击事件,这也没关系,因为每次页面更改都需要单击 然而,我们最近转向了需要签名URL的CDN,我们通过ajax调用对我们的站点进行签名。由于这些URL过期,我们必须在获得签名URL后立即加载音频资产。这意味着,我们现在不是通过更改页面触发加载/播放,而是在更改页
onreadystatechange
将成为调用堆栈的根。由于这不再在click
事件的调用堆栈中,因此在页面上播放音频现在是一个两步过程,这是不理想的
在我看来,我们有几个选择:
- 在开始阅读本书时预加载所有音频(这很愚蠢,因为这可能是数百MB)
- 对所有音频进行预签名,将过期时间设置为较长时间(这很愚蠢,因为这实际上绕过了安全CDN)