1

私はビデオIDを持っています。次に、YouTubePlayerAPIのIFrameAPIを介してビデオを表示します。ビデオが表示されたので、すぐにこのビデオのタイトルを取得する必要があります。

YouTube Player IFrame APIを介してYouTubeビデオを表示するときは、ビデオのタイトルをすぐに取得する必要があることに注意してください。

ビデオタイトルを取得する最も速い方法は何ですか?解決策が必要です。

ありがとうございました。

4

4 に答える 4

10

ビデオタイトルを取得することは確かに可能です

「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);
  }
}
});

完全な実例:https ://codepen.io/anon/pen/vGOzqy?editors = 0010

于 2016-03-03T11:34:09.177 に答える
2

PlayerIFrameAPIからは不可能なようです。

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

「PlayersAPIを使用してその情報を取得する方法はありません。DataAPIを使用する必要があります。」

于 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 に答える