【问题标题】:iOS: how to instantiate YTPlayerView programmatically?iOS:如何以编程方式实例化 YTPlayerView?
【发布时间】:2020-10-22 17:01:40
【问题描述】:

我正在尝试使用以下代码以编程方式从 youtube_ios_player_helper pod 实例化 YTPlayerView:

let player = YTPlayerView()
   player.cueVideo(byId: "someId", startSeconds: 0)

然后创建所需的约束并将 youtubeplayer 视图添加到容器视图中。

但是,内部 webview 永远保持为零,并且不会被创建。我想我没有正确实例化播放器,但我没有找到任何关于如何做到这一点的信息。

有什么帮助吗?

谢谢

【问题讨论】:

    标签: ios swift ytplayerview


    【解决方案1】:

    如果你查看source codecueVideoById实际上并没有创建内部webview,你需要先调用以下之一:

    - (BOOL)loadWithVideoId:(NSString *)videoId
    - (BOOL)loadWithPlaylistId:(NSString *)playlistId
    - (BOOL)loadWithVideoId:(NSString *)videoId playerVars:(NSDictionary *)playerVars
    - (BOOL)loadWithPlaylistId:(NSString *)playlistId playerVars:(NSDictionary *)playerVars
    

    【讨论】:

      【解决方案2】:

      您必须创建YTPlayerView 的对象player,但是,它很容易被释放。那么该怎么办?让它成为一个属性。像这样的:

      private lazy var player: YTPlayerView = {
          return YTPlayerView()
      }()
      
      override func viewDidLoad()...
      

      private var player: YTPlayerView!
      
      override func viewDidLoad() {
          super.viewDidLoad()
          self.player = YTPlayerView()
      }
      

      【讨论】:

        猜你喜欢
        • 2013-08-11
        • 1970-01-01
        • 2020-12-29
        • 1970-01-01
        • 2011-02-26
        • 1970-01-01
        • 2011-02-22
        • 2017-01-26
        • 1970-01-01
        相关资源
        最近更新 更多