iOS 上的 Safari 有一个策略,仅当当前 javascript 执行以用户操作(通常是单击事件)开始时才允许播放媒体。
但是,当我将处理程序附加到触发的按钮someYoutubePlayer.playVideo()
并且用户单击此按钮时,这就是实际发生的情况:
click
在主页面窗口中触发事件- 该方法在 youtube 上
playVideo
触发postMessage
<iframe />
- 在 iframe 内
message
触发了一个事件 message
事件的处理程序domVideo.play()
将失败,因为当前事件不再是click
,而是message
,因为我们在内部iframe
窗口中。
有谁知道如何克服这个问题并从外部点击事件触发播放?