我有一个视频ID。然后我通过YouTube Player API的IFrame API显示视频。该视频显示,现在我需要IMMEDIATELY获得此视频的标题。如何在使用YouTube Player IFrame API时获取视频标题?
请注意,我需要IMMEDIATELY当我通过YouTube Player IFrame API显示YouTube视频时,会获得视频的标题。
什么是最快获取视频标题的方法?我需要解决方案。
谢谢。
我有一个视频ID。然后我通过YouTube Player API的IFrame API显示视频。该视频显示,现在我需要IMMEDIATELY获得此视频的标题。如何在使用YouTube Player IFrame API时获取视频标题?
请注意,我需要IMMEDIATELY当我通过YouTube Player IFrame API显示YouTube视频时,会获得视频的标题。
什么是最快获取视频标题的方法?我需要解决方案。
谢谢。
这似乎是不可能的从播放器的IFrame API:
https://groups.google.com/forum/?fromgroups=#!topic/youtube-api-gdata/D0w8wA0UV7A
“没有办法使用玩家API来获取这些信息你需要使用Data API”
检查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;
}
}
这的确是有可能得到视频标题
当调用您的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);
}
}
});
斯威夫特3
您可以使用YTPlayerState + Extension.swift
extension YTPlayerView {
var videoTitle: String {
let callString = "player.getVideoData().title"
return webView?.stringByEvaluatingJavaScript(from: callString) ?? "no title"
}
}
我想在2012年这可能不是已经可以背(?),但我认为这应该是公认的答案! – ne1410s
这工作无缝,谢谢你的答案。 – breezy