【问题标题】:How to proper use YouTube iOS Player Helper?如何正确使用 YouTube iOS Player Helper?
【发布时间】:2015-09-16 03:49:38
【问题描述】:

我正在尝试使用 Swift 从 YouTube(个人帐户)加载视频/播放列表。我添加了 YTPlayerView 类和 iframe HTML 文件来执行此操作,但视频未加载。

我在情节提要中添加了一个 UIView 并将其类更改为 YTPlayerView 并创建了一个 IBOutlet。

代码如下:

import UIKit
import youtube_ios_player_helper

class YTViewController: UIViewController, YTPlayerViewDelegate {

    @IBOutlet var videoPlayer: YTPlayerView!

    override func viewDidLoad() {

        let videoID = "https://www.youtube.com/watch?v=M7lc1UVf-VE"
    videoPlayer.loadVideoByURL(videoID, startSeconds: 0.0, suggestedQuality: .Small)
        videoPlayer.playVideo()

    }

}

据我在文档中看到的,这就是显示视频所需要的。但是当我运行应用程序时, UIView 什么都不做。我怎样才能让它工作?

【问题讨论】:

  • YouTube iOS Helper (YTPlayerView) 与 XCDYouTubeKit 不同。您确定添加了 YTPlayerView 类并通过桥接头导入了吗?
  • 我刚刚意识到我在我的问题中混合了它们。我已经改了标题。感谢您检查这一点。是的,我在桥接头文件中添加了#import “YTPlayerView.h”。
  • 您是否在调试器中遇到任何错误?此处报告了 Swift 开发人员的问题:github.com/youtube/youtube-ios-player-helper/issues/107
  • 不,有任何错误。我实际上用 nemoeslovo 的拉取请求修复了你指出的那个。
  • 使用loadWithVideoId:而不是loadVideoByURL:时,你得到相同的结果吗?

标签: ios swift youtube youtube-api ytplayerview


【解决方案1】:

确保YTPlayerView-iframe-player.html 文件已添加到项目中,并且正在复制到“复制捆绑资源”下的捆绑包中。

【讨论】:

【解决方案2】:

您必须委托查看videoPlayer.delegate = self;

let videoID = "https://www.youtube.com/watch?v=M7lc1UVf-VE";  videoPlayer.delegate = self;
videoPlayer.loadVideoByURL(videoID, startSeconds: 0.0, suggestedQuality: .Small);
 videoPlayer.playVideo();

【讨论】:

    【解决方案3】:

    确保将 YTPlayerView-iframe-player.html 添加到您的项目中,并添加到“复制包资源”下的包中。还有YTPlayerView.m这个文件也添加到你的项目中了。

    如果还是不行就替换下面的代码

    NSString *path = [[NSBundle mainBundle] pathForResource:@"YTPlayerView-iframe-player" ofType:@"html" inDirectory:@"Assets"];
    

    有了这个

    NSString *path = [[NSBundle mainBundle] pathForResource:@"YTPlayerView-iframe-player" ofType:@"html"];
    

    【讨论】:

      【解决方案4】:

      在 viewDidLoad 中添加self.view = videoPlayer

      @IBOutlet var videoPlayer: YTPlayerView!
      
      override func viewDidLoad() {
      
          let videoID = "https://www.youtube.com/watch?v=M7lc1UVf-VE"
      videoPlayer.loadVideoByURL(videoID, startSeconds: 0.0, suggestedQuality: .Small)
          videoPlayer.playVideo()
       videoPlayer.delegate = self
       self.view = videoPlayer
      
      }
      

      我希望这会奏效!

      【讨论】:

        猜你喜欢
        • 2017-08-15
        • 2015-08-07
        • 2016-04-26
        • 2023-03-29
        • 2016-09-06
        • 2015-05-31
        • 2016-10-29
        • 2020-01-12
        • 2016-03-23
        相关资源
        最近更新 更多