私はビデオIDを持っています。次に、YouTubePlayerAPIのIFrameAPIを介してビデオを表示します。ビデオが表示されたので、すぐにこのビデオのタイトルを取得する必要があります。
YouTube Player IFrame APIを介してYouTubeビデオを表示するときは、ビデオのタイトルをすぐに取得する必要があることに注意してください。
ビデオタイトルを取得する最も速い方法は何ですか?解決策が必要です。
ありがとうございました。
私はビデオIDを持っています。次に、YouTubePlayerAPIのIFrameAPIを介してビデオを表示します。ビデオが表示されたので、すぐにこのビデオのタイトルを取得する必要があります。
YouTube Player IFrame APIを介してYouTubeビデオを表示するときは、ビデオのタイトルをすぐに取得する必要があることに注意してください。
ビデオタイトルを取得する最も速い方法は何ですか?解決策が必要です。
ありがとうございました。
ビデオタイトルを取得することは確かに可能です
「YouTubePlayerAPIのIFrameAPI」を呼び出すと、すぐに「 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);
}
}
});
PlayerIFrameAPIからは不可能なようです。
https://groups.google.com/forum/?fromgroups=#!topic/youtube-api-gdata/D0w8wA0UV7A
「PlayersAPIを使用してその情報を取得する方法はありません。DataAPIを使用する必要があります。」
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
YTPlayerState+Extension.swiftを使用できます
extension YTPlayerView {
var videoTitle: String {
let callString = "player.getVideoData().title"
return webView?.stringByEvaluatingJavaScript(from: callString) ?? "no title"
}
}