我正在制作一个 tvOS 应用程序。我正在创建一个简单的 SHOW segue。在目标视图控制器中,我想用 播放远程视频AVPlayerViewController
,但是当我按下按钮进行转场时,它不会立即发生。事实上,它等待了将近 2 到 3 秒,然后转到目标视图控制器,视频几乎立即开始。我认为 segue 不会立即发生,因为 AVPlayer 正在加载视频。我不想要这种行为,我想要的是立即进行转换,然后可能会在目标视图控制器上显示一个活动指示器(旋转视图)。
这是我的目标视图控制器代码。
import Foundation
import UIKit
import AVKit
class PlayViewController : UIViewController {
var avplayerVC : AVPlayerViewController?
var videoUrlStr : String?
override func viewDidLoad() {
super.viewDidLoad()
print("In PlayViewController View Did Load")
avplayerVC = AVPlayerViewController()
let avAsset = AVAsset(URL: NSURL.init(string: videoUrlStr!)!)
let avPlayerItem = AVPlayerItem(asset: avAsset)
avplayerVC?.player = AVPlayer(playerItem: avPlayerItem)
avplayerVC?.player?.seekToTime(kCMTimeZero)
avplayerVC?.player?.play()
avplayerVC?.view.frame = (self.view?.frame)!
self.view.addSubview((avplayerVC?.view!)!)
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
avplayerVC?.view.removeFromSuperview()
}
// MARK : AVPlayerViewControllerDelegate
}
任何人都可以帮助我实现这种行为吗?谢谢