2013-11-29 65 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); 
} 
相关问题