【问题标题】:Autoplay multiple YouTube videos on mute at once一次静音自动播放多个 YouTube 视频
【发布时间】:2016-08-02 12:13:53
【问题描述】:

我正在尝试制作一个网页,该网页使用 YouTube iframe API 来显示多个在加载时自动开始播放的视频。我希望 4 个视频中的 3 个开始静音播放,但第 4 个视频与音频一起播放。 最后,我正在尝试创建一个静音/取消静音和暂停/开始按钮,让我可以同时控制所有 4 个视频。

我一直在玩弄音频功能的代码,但不知道为什么它不起作用。现在 4 个视频中有 3 个使用了 api,所以我可以一次控制它们,最后一个视频是它自己的 iframe,可以自动播放。

如果有人想玩,这里是代码:

HTML:

<div class="no-sound">
    <div data-id="EI0ib1NErqg"></div>
</div>
<div class="no-sound">
    <div data-id="fV6O722O_ew"></div>
</div>
<div class="no-sound">
    <div data-id="cKxRvEZd3Mw"></div>
</div>

<div id="sound">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/g95_9Qd7o9Y?rel=0&autoplay=1" frameborder="0" allowfullscreen></iframe>
</div>

JavaScript:

var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

var players;
function onYouTubePlayerAPIReady() {
    var players = document.querySelectorAll('.no-sound div')
    for (var i = 0; i < players.length; i++) {
        new YT.Player(players[i], {
            playerVars: {
                'autoplay': 1,
                'modestbranding': 1,
                'controls': 1,
                    events: {
                'onReady': onPlayerReady
                    }
            },
            videoId: players[i].dataset.id
        });
    }

}

      function onPlayerReady(event) {
        event.target.mute();
      }

提前谢谢你。

【问题讨论】:

    标签: javascript video youtube youtube-api


    【解决方案1】:

    请更改您的代码:

    发件人:

    new YT.Player(players[i], {
        playerVars: {
            'autoplay': 1,
            'modestbranding': 1,
            'controls': 1,
            events: {
            'onReady': onPlayerReady
            }
        },
        videoId: players[i].dataset.id
    });
    

    new YT.Player(players[i], {
        playerVars: {
            'autoplay': 1,
            'modestbranding': 1,
            'controls': 1},
            events: {
            'onReady': onPlayerReady
        },
        videoId: players[i].dataset.id
    });
    

    基于谷歌给出的sample code。 Events 元素在 playerVars 元素之外。这是支持的参数 int playerVars 元素列表的link

    function onYouTubeIframeAPIReady() {
        var player;
        player = new YT.Player('player', {
            videoId: 'M7lc1UVf-VE',
            playerVars: { 'autoplay': 1, 'controls': 0 },
            events: {
                'onReady': onPlayerReady,
                'onPlaybackQualityChange': onPlayerPlaybackQualityChange,
                'onStateChange': onPlayerStateChange,
                'onError': onPlayerError
            }
        });
    }
    

    jsfiddle 为例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多