![](/img/trans.png)
[英]Make AVPlayer to full screen view in AVPlayerViewController, Swift
[英]Swift/AppleTV4: How to connect AVPlayer function to AVPlayerViewController?
這是一個名為AVPlayer
的基本playMe函數,可通過AppleTV通過Swift播放MP3,MP4或Wav。 如何將其與AVPlayerViewController
結合使用-即,如何使playMe(“ video”,“ mp4”)在AVPlayerViewController
播放,在Main.storyboard和AVPlayerViewController之間建立連接需要哪些步驟? GUI和Swift代碼中?
func playMe(inputfile: String, inputtype: String) {
let path = NSBundle.mainBundle().pathForResource(inputfile, ofType:inputtype)!
let videoURL = NSURL(fileURLWithPath: path)
let player = AVPlayer(URL: videoURL)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
self.view.layer.addSublayer(playerLayer)
player.play()
}
一種實現方法是子類化AVPlayerViewController
。 AVPlayerViewController
具有一個名為player
的AVPlayer
屬性。 AVPlayerViewController的子類可能看起來像這樣:
import UIKit
import AVKit
class MyPlayerViewController: AVPlayerViewController {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
let path = NSBundle.mainBundle().pathForResource("myVideo", ofType:"mov")!
let videoURL = NSURL(fileURLWithPath: path)
player = AVPlayer(URL: videoURL)
}
}
此實現將顯示默認的播放控件,並且可以與Siri遙控器一起使用。
這是使用prepareForSegue通過按下按鈕來執行此操作的代碼:
import UIKit
import AVFoundation
import AVKit
let playerViewControllerSegue = "play";
class MyViewController: UIViewController {
@IBAction func playMovie(sender: UIButton) {
self.performSegueWithIdentifier(playerViewControllerSegue, sender: self);
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == playerViewControllerSegue){
let path = NSBundle.mainBundle().pathForResource("7second", ofType:"mp4")!
let videoURL = NSURL(fileURLWithPath: path)
let player = AVPlayer(URL: videoURL)
let playerViewController = segue.destinationViewController as! AVPlayerViewController
playerViewController.player = player
playerViewController.player?.play()
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.