我的应用程序中有一个YouTubePlayer
(来自here)。我有一个UIViewController
(我们称其为MainViewController
),其中有一个UITableView
完整的视频。每当用户点击一个单元格时,它就会打开另一个UIViewController
(我们将其称为DetailViewController
),并带有我的自定义xib视图,即playerView
。就像我说的,playerView
是自定义的xib视图,在该视图中是我的YouTubePlayer
。这就是我在DetailViewController
中设置playerView的方式
playerContainer.addSubview(playerView)
playerView.frame = CGRect(x: 0, y: 0, width: playerContainer.frame.size.width , height: playerContainer.frame.size.height)
playerView.player.loadVideoID(nowPlayingVideo.id)
好的,这很好。但是...每当用户关闭
DetailViewController
时,我都希望将playerView
移到MainViewController
。就像用户可以看到后台播放的内容一样。为此,我在DetailViewController
中添加了此代码...override func viewWillDisappear(_ animated: Bool) {
nowPlayingView.addSubview(playerView)
playerView.frame = CGRect(x: 8, y: 8, width: width, height: height)
playerView.layoutIfNeeded()
}
nowPlayingView
是另一个自定义的xib视图,并在较早时添加到应用程序的窗口中。所以这就是我开始遇到问题的地方。这段代码很棒。正确更改了框架并将其添加到nowPlayingView,但是YouTubePlayer
中的playerView
似乎已重新加载。因此它将暂停播放,显示一个加载图标,然后继续播放。真烦人。这不应该发生,因为视频已经加载到YouTubePlayer
中。我很确定只有在更改playerView
的帧时才会发生这种情况。有人对如何解决这个问题有任何想法吗? 最佳答案
当视频在加载后继续播放时,是从头开始还是在切换视图之前从中断处继续播放?