1

我有一个视频ID。然后我通过 YouTube Player API 的 IFrame API 显示一个视频。视频已显示,现在我需要立即获取此视频的标题。

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

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

谢谢你。

4

4 回答 4

10

确实可以得到Video Title

调用“YouTube Player API 的 IFrame API”时,您可以访问“ event.target.getVideoData().title ”函数:

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

于 2016-03-03T11:34:09.177 回答
2

从 Player IFrame API 看来这是不可能的:

https://groups.google.com/forum/?fromgroups=#!topic/youtube-api-gdata/D0w8wA0UV7A

“无法使用 Players API 获取该信息。您需要使用 Data API。”

于 2012-11-08T02:47:22.487 回答
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;
        }
    }
于 2015-04-17T16:59:28.250 回答
0

斯威夫特 3

你可以使用 YTPlayerState+Extension.swift

extension YTPlayerView {
    var videoTitle: String {
        let callString = "player.getVideoData().title"
        return webView?.stringByEvaluatingJavaScript(from: callString) ?? "no title"
    }
} 
于 2017-03-22T19:03:22.083 回答