5

在 YouTube 上有一个讲座,我想将它用作我的 27 岁儿童主题网站的标题电影。我希望它有声音且没有自动播放。(正如在 Youtube 上看到的那样,视频的声音完好无损。)

在 [this question about autoplay] 之后,我设置了https://www.youtube.com/watch?v=1dYAYBNU6qM&autoplay=0的视频 URL 。行为似乎没有改变。它立即启动,但声音被静音。

对于二十七,如果用户点击“播放”按钮,我是否可以选择开始暂停并开始播放声音的媒体文件?

谢谢,

4

1 回答 1

4

您可以使用global对象wp来访问 youtube 播放器功能。Youtube 视频twentyseventeen theme加载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不是最好的方法。我相信,它可以用更优雅的代码来完成。

但它的测试和工作。

于 2018-01-25T14:35:13.070 回答