iOS デバイスとシミュレーターの両方でビデオ コンテンツを再生するのに問題があります。
目標: ここで指定されたオンライン リソースからビデオをストリーミングします:
hlsを使用したパブリック ビデオ ストリームAVPlayerViewController
で、その仕組みを学習します。
これにより一貫してエラーはスローされませんでしたが、View Controller はこのビューを表示しました。
一歩下がってローカル リソースでテストすることにしたので、クイックタイム (.m4v) で短いスクリーン キャプチャを撮影し、プロジェクトに保存しました。これにより、まったく同じ動作が発生し、エラーは報告されませんでした。
コードは次のとおりです(AVKit
およびAVFoundation
インポートされます):
var playerVC : AVPlayerViewController!
var playerItem : AVPlayerItem!
var player : AVPlayer!
var playerLayer: AVPlayerLayer!
override func viewDidAppear(animated: Bool) {
let bundle = NSBundle.mainBundle()
let path = bundle.pathForResource("testVideos", ofType: "m4v")
let url = NSURL.init(string: path!)
playerItem = AVPlayerItem.init(URL: url!)
player = AVPlayer.init(playerItem: playerItem)
playerVC = AVPlayerViewController.init();
playerVC.player = player;
self.presentViewController(playerVC, animated: true) { () -> Void in
self.playerVC.player?.play()
}
}
IpadMini 4 へのビルド時に次の警告が表示されます。<CATransformLayer: 0x136ea1030> - changing property masksToBounds in transform-only layer, will have no effect
Xcode: バージョン 7.1 対象: iOS 9.0
更新 AVPlayerViewController からの厄介な制約出力です。これが貢献しているとは思いませんが、ここにあります:
2015-10-28 15:12:02.777 AVKitTest[4441:94545] 制約を同時に満たすことができません。おそらく、次のリストの制約の少なくとも 1 つが望ましくないものです。これを試してください: (1) 各制約を見て、どれが予期しないものかを把握してみてください。(2) 不要な制約を追加したコードを見つけて修正します。(注: 理解できない NSAutoresizingMaskLayoutConstraints が表示されている場合は、UIView プロパティ translatesAutoresizingMaskIntoConstraints のドキュメントを参照してください) ( "", "", "", "", "", "", "", "" )