我有一个视频ID。然后我通过YouTube Player API的IFrame API显示视频。视频会显示,现在我需要立即获取此视频的标题。
请注意,当我通过YouTube播放器IFrame API显示YouTube视频时,我需要立即获取视频标题。
最快获取视频标题的方式是什么?我需要解决方案。
谢谢。
答案 0 :(得分:9)
确实可以获得视频标题
调用您的YouTube播放器API的IFrame API后,您就可以访问' event.target.getVideoData()。title &# 39;功能:
new YT.Player('player', {
height: '390',
width: '640',
videoId: 'D3pYbbA1kfk',
events: {
'onReady': function onPlayerReady(event) {
alert("The video title is: " + event.target.getVideoData().title);
}
}
});
答案 1 :(得分:2)
似乎无法从Player IFrame API中获取:
https://groups.google.com/forum/?fromgroups=#!topic/youtube-api-gdata/D0w8wA0UV7A
“使用Players API无法获取该信息。您需要使用Data API。”
答案 2 :(得分: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;
}
}
答案 3 :(得分:0)
Swift 3
您可以使用YTPlayerState + Extension.swift
extension YTPlayerView {
var videoTitle: String {
let callString = "player.getVideoData().title"
return webView?.stringByEvaluatingJavaScript(from: callString) ?? "no title"
}
}