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