【问题标题】:How can I get the video title when using YouTube Player IFrame API?使用 YouTube Player IFrame API 时如何获取视频标题?
【发布时间】:2012-10-28 00:18:39
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

    标签: video youtube youtube-api gdata gdata-api


    【解决方案1】:

    Player IFrame API 似乎无法实现:

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

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

    【讨论】:

      【解决方案2】:

      在 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】:

        确实可以得到视频标题

        调用“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

        【讨论】:

        • 我想这在 2012 年可能还没有(?)但我认为这应该是公认的答案!
        【解决方案4】:

        斯威夫特 3

        你可以使用 YTPlayerState+Extension.swift

        extension YTPlayerView {
            var videoTitle: String {
                let callString = "player.getVideoData().title"
                return webView?.stringByEvaluatingJavaScript(from: callString) ?? "no title"
            }
        } 
        

        【讨论】:

          猜你喜欢
          • 2015-10-23
          • 2018-04-27
          • 2017-10-14
          • 2011-01-29
          • 2017-12-10
          • 2020-06-10
          • 1970-01-01
          • 2013-04-23
          • 2018-01-30
          相关资源
          最近更新 更多