iOS Safari上的YouTube API,通过自定义控件以编程方式静音/取消静音?

时间:2017-09-12 15:15:04

标签: javascript ios youtube youtube-api

我的目标是在使用YouTube iFrame API滚动视图时让视频播放,静音。这部分我工作得很好。

在移动设备上无法正常工作的是尝试为用户提供一个按钮来静音/取消静音视频。因此,视频开始播放,然后我们想让用户选择打开声音。不幸的是,移动设备上的youtube控件没有显示选项。此外,在移动设备上调用视频中的mute()unMute()也会产生影响。我的静音/取消静音按钮在桌面上工作,所以我知道这不是语法问题。

我在这里找到了各种答案,但它们都比较老了,并且已经阅读了有关视频规则的webkit规范。在调用mute()之前我play()视频,以便让他们以编程方式开始在iOS上滚动播放。但是,一旦它正在播放,是否有任何神奇的事件组合会告诉iOS让用户的有机点击互动影响播放器?

规则说音频必须由用户控制,因此如果用户点击某些内容来静音/取消静音视频,我该如何向webkit传达它是否正常?

1 个答案:

答案 0 :(得分:0)

我依靠YouTube API isMuted()方法,该方法返回一个布尔值,以决定何时将视频静音/取消静音。但是,在记录了isMuted()的值之后,我发现由于某种原因在移动设备上并不总是正确的。因此,视频会被静音,但仍会返回false,因此不会触发我的静音功能。

解决方案是不信任他们的API,只需在用户点击按钮静音/取消静音时切换我的视频包装上的is-muted类。它现在可以在桌面和iOS Safari上使用。