这是一个基本的playMe函数,调用AVPlayer,使用AppleTV通过Swift播放MP3、MP4或Wav。如何将其与AVPlayerViewController结合--例如,如何使playMe(“视频”、"mp4")在AVPlayerViewController中播放,在图形用户界面和Swift代码中在Main.storyboard和AVPlayerViewController之间建立连接需要执行哪些步骤?
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()
}发布于 2016-01-13 02:34:11
可以这样做的一种方法是对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()
}
}
}https://stackoverflow.com/questions/34525804
复制相似问题