1

我正在尝试在我的应用程序中在 tvOS 上播放远程 mp4 视频。有一个小问题,当我设置AVPlayerViewController.view.frame = self.view.frame然后在视频加载之前微调器不会出现。但是,如果我设置AVPlayerViewController.view.frame = CGRectMake(0.0, 0.0, 1920.0, 1079.0)它工作得很好。微调器在开始时加载,然后出现视频。

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?.addObserver(self, forKeyPath: "status", options: .New, context: nil)

        avplayerVC?.player?.play()
        print("Status 1: " +  "\(avplayerVC?.player?.status.rawValue)")

        print(self.view?.frame)

        // doesn't work
        //avplayerVC?.view.frame =  self.view.frame

        // doesn't work
        //avplayerVC?.view.frame =  CGRectMake(0.0, 0.0, 1920.0, 1080.0)

        // works fine
        avplayerVC?.view.frame =  CGRectMake(0.0, 0.0, 1920.0, 1079.0)
        self.view.addSubview((avplayerVC?.view!)!)
    }
}

我还尝试输入登录print(self.view?.frame)viewDidLoad打印出来(0.0 0.0; 1920.0,1080.0)

4

0 回答 0