0

這是我的第一篇文章,我希望我尊重所有的規則。爲什麼YouTube JavaScript播放器API會打開與我的代碼不同的URL,並播放播放列表的第一個視頻?

我想在我的網頁上發佈一個: shuffle/muted /自動播放youtube播放列表。

我用SWFObject的方法AS3。

下面的代碼一切正常,但由於幾周,播放器不檢測我的播放列表,只是播放第一個視頻。

在代碼中,網址是: https://www.youtube.com/v/HuIGf4IJzdM&列表=巴解組織 -QIlIZx6myBxEysxrWoE-F58-psKGji

但是,當我打開網頁的頁面時,它打開以下鏈接: https://www.youtube.com/v/HuIGf4IJzdM&列表= Ø -QIlIZx6myBxEysxrWoE-F58-psKGji

下面是代碼至極,如果我沒有錯,工作較先罰款:

<script src="https://www.google.com/jsapi"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script> 
<div id="ytapiplayer">You need Flash player 8+ and JavaScript enabled to view this video.</div> 
<script type="text/javascript"> 
google.load("swfobject", "2.2"); 
function onYouTubePlayerReady(playerId) { 
ytplayer = document.getElementById("myytplayer"); 
ytplayer.playVideo(); 
ytplayer.setShuffle(true); 
ytplayer.mute(); 
} 
var params = {allowScriptAccess: "always" , allowFullScreen : "true"}; 
var atts = { id: "myytplayer" }; 

swfobject.embedSWF("https://www.youtube.com/v/HuIGf4IJzdM&list=PLo-QIlIZx6myBxEysxrWoE-f58-psKGji&index=0&feature=plpp_play_all?enablejsapi=1&playerapiid=ytplayer&allowFullScreen=true&version=3&loop=1&autohide=1", 
"ytapiplayer", "50%", "50%", "10", null, null, params, atts) 
</script> 

如果有人能幫我解決這個問題,非常感謝!

回答

1

我終於找到了一種替代方法來使它與iframe一起工作。

下面是代碼:

<div id="player"></div> 

<script> 

    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 player; 
    function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player', { 
     height: '100%', 
     width: '100%', 
     events: { 
     'onReady': onPlayerReady 
     } 

    }); 
    } 

    function onPlayerReady(event) { 

    event.target.loadPlaylist({'listType': 'playlist', 
           'list': 'PLo-QIlIZx6myBxEysxrWoE-f58-psKGji', 
           'index': '0' 
           }); 
     event.target.mute(); 
     event.target.setLoop(true); 
    setTimeout(function() { 
     event.target.setShuffle(true); 
    }, 2000); 
     } 
</script> 

感謝您的幫助:-)

+0

這讓我如此之近!遺憾的是,它並沒有拖動第一首歌曲 – Pixeltramp

0

...播放器沒有檢測到我的播放列表並只播放第一個視頻。

Youtube已經轉移到新的iFrame API上,並且允許播放列表。

下面嘗試此示例代碼通過將其粘貼here(點擊 「見結果」)

<!DOCTYPE html> 
<html> 
<body> 

<iframe width="700" height="400" 
src="https://www.youtube.com/embed/HuIGf4IJzdM?list=PLo-QIlIZx6myBxEysxrWoE-f58-psKGji"> 
</iframe> 

</body> 
</html> 

看看它是如何是一個標籤內?不是SWF,不是JS,只是使用iFrame。您必須爲您的網站代碼添加一個類似的標籤(刪除&替換您顯示的script代碼)。

注:

  • 還要注意的iFrame網址開頭是 https://www.youtube.com/embed/這給你的HTML5播放器 這意味着它將在移動工作了。使用手機或 平板電腦的網站訪問者可以觀看。這是您所有網站 訪問者的最佳工作選項。
  • 如果你真的想在iFrame中使用Flash,那麼改爲 https://www.youtube.com/v/這會給你一個SWF播放器,其中 表示它將需要Flash Player插件(不適用於手機)。 使用手機或平板電腦訪問您的網站的人不能手錶 (他們得到一個空白的白色框或一些消息,如「插件不是 可用」)。
相關問題