[英]iOS 9: Using AVPlayerViewController Swift. (crossed out play button)
我在ios設備和模擬器中播放視頻內容時遇到了一些麻煩。
目標:從此處給出的在線資源中流式傳輸視頻 : 使用hls使用AVPlayerViewController
公共視頻流 ,只是為了了解它是如何工作的。
這始終導致沒有拋出錯誤,但視圖控制器向我展示了這個視圖。
我決定退后一步測試一個本地資源,所以我在quicktime(.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)看看每個約束並試着找出你不期望的東西; (2)找到添加了不需要的約束或約束的代碼並修復它。 (注意:如果你看到你不理解的NSAutoresizingMaskLayoutConstraints,請參閱UIView屬性的文檔translatesAutoresizingMaskIntoConstraints)(“”,“”,“”,“”,“”,“”,“”,“” )
原來這是愚蠢的事情,只需要改變:
let url = NSURL.init(string: path!) playerItem = AVPlayerItem.init(URL: url!)
有:
let url = NSURL.init(fileURLWithPath: path!) let playerItem = AVPlayerItem.init(URL: url)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.