2013-11-29 70 views
1

是否有顯示/查看/返回哪個視頻(如此,哪個videoID)此刻正在播放的方法?Youtube API:查看當前正在播放哪個視頻ID

這是I幀API的基本代碼:

var player; 
    function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player', { 
     height: '390', 
     width: '640', 
     videoId: 'pJ18QeQy0e8', 
     events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange, 
     'onError': onError, 
     }, 
     playerVars: { 

        'controls': 0, 
        'showinfo': 0, 
        'iv_load_policy': 3, 
        'wmode': "opaque", 
       }, 
    }); 
    } 

第一視頻結束後。此事件被稱爲:

function onPlayerStateChange(event) { 
if(event.data === 0) {  
     player.stopVideo(); 
player.loadVideoById(getId());   

     } 
    } 

的的getId()函數將獲得另一VideoID的玩..

我想在一個DIV,這VideoID的當前正在播放

回答

4

你可以用它來顯示getVideoUrl以獲取網址,並從此網址獲取id部分。

+1

假設視頻網址是正確的(表或嵌入網址),則可以拉動視頻ID如下: 'VAR正則表達式= /^.*(youtu.be\/|v ?\/| U \/\ W \/|嵌入\/|手錶\ v = | \&v = | \ v =)([?^#\&\] *)* /; var match = e.target.getVideoUrl()。match(regExp); var videoID = match [2];' –

13
player.getVideoData()['video_id'] 

OR

var video_data = player.getVideoData() 
video_data['video_id'] 

解決方案:

function onPlayerStateChange(event) { 
    if(event.data === 0) {  
     player.stopVideo(); 
     player.loadVideoById(player.getVideoData()['video_id']); 
    } 
} 
+2

這不工作了試圖訪問這個函數返回'e.player.getVideoData不是一個函數' – select

0

使用window.location.href ...

您可以在桌面上,如果粘貼到控制檯你在YouTube視頻中會將id從網址中取出,而不是優雅適用於臺式機

var url = window.location.href; 

var isYTvid = url.indexOf("www.youtube.com/watch?v="); 
if (isYTvid != -1) { 
    var id = url.slice(url.indexOf("=") + 1 , url.length); 
    console.log(id); 
} 
相關問題