アプリケーションの 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)。