如何从列表中播放随机视频?

时间:2017-03-17 18:45:46

标签: javascript jquery html5 video youtube

我有一个数组中的视频列表,我希望能够让播放器在当前结束后播放列表中的另一个视频。我遇到的问题是它在结束时重复播放相同的视频,而不是选择要播放的新视频。我一直在寻找类似的问题,并没有找到任何可以使它工作的东西。任何建议将不胜感激!

   $("#btnSubmit").click(function (event) {
      event.preventDefault();
     if (confirm('Please verify that your information is correct before submitting.')) {
    var empComplete = false, sourceComplete = false, spouseComplete = false, dividentComplete = false, reimbursedComplete = false, honorariaComplete = false, giftComplete = false, orgComplete = false, creditorComplete = false;
    function checkComplete() {
     if (empComplete && sourceComplete && spouseComplete && dividentComplete && reimbursedComplete && honorariaComplete && giftComplete && orgComplete && creditorComplete) {
    $("#result").text("Thank you! You have successfully completed this form");
     }
    }

//Loading message handler
    var $loading = $('#loadingDiv').hide();
    $(document)
    .ajaxStart(function () {
    $loading.show();
    })
    .ajaxStop(function () {
    $loading.hide();
    });

    $("#result").text("");
    var data = JSON.stringify(getAllEmpData());
    console.log(data);
    $.ajax({
    url: 'disclosures.aspx/SaveEmpData',
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify({ 'empdata': data }),
    async: false,
    success: function () {
    empComplete = true;
    checkComplete();
    },
    error: function () {
    alert("Error while inserting data");
    }
    });
    }
    )};
    ...
    ...
    </script>

    //Markup

     <input type="submit" id="btnSubmit" class="btn btn-primary btn-md pull-center btn-sm" value="Submit" /><img id="loadingDiv" src="images/ajax-loader.gif" alt="Loading..." />
    <output id="result" style="margin-bottom:300px;margin-left:250px;color:#3c890e;font-weight:bold;font-size:18px;"></output>

我可能把代码放错了所以这里是jsfiddle我一直在努力

https://jsfiddle.net/bbasham/L20k7x1o/2/

1 个答案:

答案 0 :(得分:0)

您的问题是您没有告诉YT播放器使用视频播放列表。相反,您一次只能设置一个视频ID,因此shuffle方法无效。您需要更新方法,以便在重新启动之前交换视频ID:

// 5. This should play another random video
function onPlayerStateChange(event) {        
    if(event.data === 0) {
        //event.target.setShuffle(true); //useless unless the player has a playlist
        event.target.loadVideoById( rotateYT() ); 
        event.target.playVideo();
    }
}

这将导致播放器在重新启动播放器之前抓取新视频并将其设置为源。或者,您可以提供播放列表,然后使用随机播放。

Documentation