我的目标是使用YouTube Iframe API播放视频,静音。这部分我工作正常。
在移动设备上不起作用的是试图为用户一个按钮静音/取消静音视频。因此,视频开始播放,然后我们希望为用户提供打开声音的选项。不幸的是,移动设备上的YouTube控件没有显示出此选择。另外,在移动设备上调用视频上的mute()
或unMute()
具有0效果。不过,我的静音/取消静音按钮在桌面上工作,所以我知道这不是语法问题。
我在这里找到了各种答案,但是它们都老了,并且已经阅读了有关视频规则的Webkit规格。我在拨打play()
之前mute()
视频,以使它们能够以编程方式开始在iOS上进行滚动。但是,一旦播放,是否会有任何魔术组合,可以告诉iOS让用户的有机点击互动影响播放器?
规则说音频必须由用户控制,因此,如果用户单击某些内容以静音/取消视频,我该如何将其传达给WebKit,这还可以吗?
我依靠返回布尔值的YouTube API isMuted()
方法来决定何时静音/取消视频。不过,在记录了isMuted()
的值后,我发现出于某种原因,它并不总是正确的。因此,视频会被静音,但仍然会返回false,因此不会发出我的静音功能。
解决方案是不信任他们的API,而当用户点击按钮静音/取消静音时,我的视频包装器上只需切换is-muted
类。现在,它按照桌面和iOS Safari的意图工作。