我的目标是使用 YouTube iFrame API 在视频滚动到 View 时播放、静音。这部分我工作得很好。
在移动设备上不起作用的是试图给用户一个按钮来静音/取消静音视频。因此,视频开始播放,然后我们希望为用户提供打开声音的选项。不幸的是,移动设备上的 youtube 控件没有显示该选项。另外,调用mute()
或 unMute()
在视频上,在手机上,效果为 0。不过,我的静音/取消静音按钮可以在桌面上使用,所以我知道这不是语法问题。
我在这里找到了各种答案,但它们都比较老,并且已经阅读了有关视频规则的 webkit 规范。我 mute()
通话前的视频play()
为了让他们以编程方式开始在 iOS 上滚动播放。但是,一旦它开始播放,是否有任何神奇的事件组合可以告诉 iOS 让用户的自然点击交互影响播放器?
规则说音频必须由用户控制,所以如果用户单击某些东西以使视频静音/取消静音,我如何向 webkit 传达它可以?
最佳答案
我依赖于 YouTube API isMuted()
方法,它返回一个 bool 值,以决定何时静音/取消静音视频。记录 isMuted()
的值后,不过,我发现由于某种原因在移动设备上它并不总是正确的。因此,视频将被静音,但仍会返回 false,因此不会触发我的取消静音功能。
解决方案是不信任他们的 API,只需切换 is-muted
当用户点击按钮静音/取消静音时,我的视频包装器上的类。它现在可以在桌面和 iOS Safari 上正常工作。
关于javascript - iOS Safari上的YouTube API,使用自定义控件以编程方式静音/取消静音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46180051/