سؤال

أعرف كيفية استخدام التشغيل التلقائي:0 في المعلمات وفي عنوان url.المشكلة هي عندما أستخدم الدالةloadVideoByID().يبدو أن الفيديو الأولي لا يبدأ تلقائيًا دائمًا.ولكن في اللحظة التي أقوم فيها بتحميل مقطع فيديو جديد، يبدأ تشغيل الفيديو الجديد تلقائيًا.لا أريد أن يبدأ هذا الجهاز الجديد تلقائيًا أيضًا

$(document).ready(function() {
var player;
window.onYouTubePlayerAPIReady = function() {
    player = new YT.Player('player', {
        height : '390',
        width : '640',
        videoId : 'JW5meKfy3fY',
        playerVars : {
            'autoplay' : 0,
            'rel' : 0,
            'showinfo' : 0,
            'egm' : 0,
            'showsearch' : 0,
            'controls' : 0,
            'modestbranding' : 1,
        },
        events : {
            'onReady' : onPlayerReady,
            'onStateChange' : onPlayerStateChange
        }
    });

};

window.onPlayerReady = function(event) {
    //event.target.playVideo();
    loadNewVid("bHQqvYy5KYo");
};

window.onPlayerStateChange = function(event, element) {
    //When the video has ended
    if (event.data == YT.PlayerState.ENDED) {
        //Get rid of the player
        element.style.display = "none";
    }
};

function loadNewVid(vidID){
    player.loadVideoById(vidID, "large");

}

});

هل كانت مفيدة؟

المحلول

حسب التعريف، loadVideoById() يقوم بتحميل وتشغيل الفيديو.ما تريد استخدامه هو cueVideoById(), ، والذي سيقوم بإعداده ولكن انتظر حتى يتم تشغيل الأمر فعليًا.

https://developers.google.com/youtube/js_api_reference#cueVideoById

نصائح أخرى

أعتقد أن هذا المنشور قديم جدًا، لكنني سأشارك أسلوبي على أي حال، في حالة تعثر شخص ما فيه، كما فعلت للتو:

لأنه لا توجد وسيلة للاتصال loadVideoById ومنع التشغيل التلقائي، أقترح الاتصال بـ destroy() على المشغل وإعادة إنشاءه باستخدام المعرف الجديد.

دعنا نقول شيئا مثل:

$(document).ready(function() {
var player;
var playerParams = {
    height : '390',
    width : '640',
    videoId : 'JW5meKfy3fY',
    playerVars : {
        'autoplay' : 0,
        'rel' : 0,
        'showinfo' : 0,
        'egm' : 0,
        'showsearch' : 0,
        'controls' : 0,
        'modestbranding' : 1,
    },
    events : {
        'onReady' : onPlayerReady,
        'onStateChange' : onPlayerStateChange
    }
}

window.onYouTubePlayerAPIReady = function() {
    player = new YT.Player('player', playerParams);

};

window.onPlayerReady = function(event) {
    //event.target.playVideo();
    loadNewVid("bHQqvYy5KYo");
};

window.onPlayerStateChange = function(event, element) {
    //When the video has ended
    if (event.data == YT.PlayerState.ENDED) {
        //Get rid of the player
        element.style.display = "none";
    }
};

function loadNewVid(vidID){
    player.destroy();
    playerParams.videoId = vidID;
    player = new YT.Player('player', playerParams);

}
});

آمل أن هذا قد يساعد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top