如何取消静音(并关闭自动播放)twentyseventeen 的 YouTube 视频?

How can I unmute (and turn off autoplay) a YouTube video for twentyseventeen?

我有 a lecture on YouTube that I would like to use as the header movie for my twentyseventeen child themed website. 我想要它有声但没有自动播放。 (在 Youtube 上观看时,视频的声音完好无损。)

在 [这个关于自动播放的问题] 之后,我设置了 https://www.youtube.com/watch?v=1dYAYBNU6qM&autoplay=0 的视频 URL。行为似乎没有改变。它立即开始,但声音是静音的。

对于 twentyseventeen,如果用户点击 'Play' 按钮,我如何选择开始暂停并开始播放的媒体文件?

谢谢,

您可以使用 global 对象 wp 来访问 youtube 播放器功能。 twentyseventeen theme 中的 Youtube 视频加载 wp-custom-header.js 文件并在 384 行中创建新对象。

您可以使用以下解决方案:

var ww_timer = setTimeout(function ww_video() {
    if(wp.customHeader.handlers.youtube.player == null){
        ww_timer = setTimeout(ww_video, 50);
    }else {
        if(typeof wp.customHeader.handlers.youtube.player.unMute === "function") {
            wp.customHeader.handlers.youtube.player.unMute();
            wp.customHeader.handlers.youtube.player.stopVideo();
        }else{
            ww_timer = setTimeout(ww_video, 50);
        }
    }
}, 50);

此代码转到 my_js.js 文件(我在活动子主题的主目录中创建它。您可以将此代码添加到另一个 .js,如果有的话)您的活动子主题主题。此外,我们需要使用此代码更新 functions.php 文件:

function ww_youtube_functions(){
  wp_enqueue_script('ww_youtube_video',get_stylesheet_directory_uri().'/my_js.js',array('wp-custom-header'),false, true);
}
add_action('wp_enqueue_scripts', 'ww_youtube_functions');

此代码的必需部分是 array('wp-custom-header'):使依赖于脚本的脚本入队 wp-custom-header

setTimeout 不是最好的方法。我相信,它可以用更优雅的代码来完成。

但是它已经过测试并且可以正常工作。