2012-11-07 186 views
1

我有一个视频ID。然后我通过YouTube Player API的IFrame API显示视频。该视频显示,现在我需要IMMEDIATELY获得此视频的标题。如何在使用YouTube Player IFrame API时获取视频标题?

请注意,我需要IMMEDIATELY当我通过YouTube Player IFrame API显示YouTube视频时,会获得视频的标题。

什么是最快获取视频标题的方法?我需要解决方案。

谢谢。

回答

0

检查onStateChange事件中未启动和正在播放的状态。我用这个解决方案,也许不是最好的,但工作正常。

var info = null; 
    function onStateChange(e) 
    { 
     switch(e.data) { 
     case YT.PlayerState.UNSTARTED: 
      info = null; 
      break; 
     case YT.PlayerState.PLAYING: 
      if(info == null) 
      { 
       info = {title: player.getVideoData().title, duration: player.getDuration()}; 
       // use info here... 
      } 
      break; 
     } 
    } 
7

这的确是有可能得到视频标题

当调用您的YouTube播放器API的iframe API“,onready您可以访问”event.target.getVideoData()。标题 “功能:

new YT.Player('player', { 
height: '390', 
width: '640', 
videoId: 'D3pYbbA1kfk', 
events: { 
    'onReady': function onPlayerReady(event) { 
    alert("The video title is: " + event.target.getVideoData().title); 
    } 
} 
}); 

全部工作示例:https://codepen.io/anon/pen/vGOzqy?editors=0010

+0

我想在2012年这可能不是已经可以背(?),但我认为这应该是公认的答案! – ne1410s

+1

这工作无缝,谢谢你的答案。 – breezy

0

斯威夫特3

您可以使用YTPlayerState + Extension.swift

extension YTPlayerView { 
    var videoTitle: String { 
     let callString = "player.getVideoData().title" 
     return webView?.stringByEvaluatingJavaScript(from: callString) ?? "no title" 
    } 
} 
相关问题