选择数组的随机元素来设置Youtube视频ID API

Selecting a random element of array to set a Youtube videoId API

本文关键字:Youtube 视频 ID API 设置 数组 随机 元素 选择      更新时间:2023-09-26

我正在尝试设置一个videoId数组,以便能够从中进行随机加载。我试图将视频数组添加为videoId,但没有成功。我是一个JS新手,所以我真的不确定我应该为此传递什么。我做到了:

<div id="player"></div>
<script>
function rotateYT() {
    var videos = [
        'ZMnjkcvjN-E',
        'RFQfSMbLCWw',
    ];
    var index=Math.floor(Math.random() * videos.length);
}
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// 3. This function creates an <iframe> (and YouTube player)
//    after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
        height: '300',
        width: '300',
        videoId: videos[index], //where I'm trying to get the random videos
        events: {
            'onReady': onPlayerReady,
        }
    });
}
// 4. The API will call this function when the video player is ready.
function onPlayerReady(event) {
    event.target.playVideo();
    event.target.mute();
    event.target.setPlaybackQuality('small');
}
</script>

函数需要返回选定的视频ID:

function rotateYT() {
    var videos = [
        'ZMnjkcvjN-E',
        'RFQfSMbLCWw',
    ];
    var index=Math.floor(Math.random() * videos.length);
    return videos[index];
}

然后你需要在onYouTubeIframeAPIReady:中调用它

function onYouTubeIframeAPIReady() {
    var videoID = rotateYT();
    player = new YT.Player('player', {
        height: '300',
        width: '300',
        videoId: videoID,
        events: {
            'onReady': onPlayerReady,
        }
    });
}