Ios Swift AV播放器视频应为AspectFill或全屏
在登录屏幕上,我必须以全分辨率显示背景视频。我能够做到这一点,双击下面的图片在黑色区域 这是我要求的结果。但这不是通过编码实现的。我只是通过双击黑色区域来实现这一点。 这是我这个类的代码Ios Swift AV播放器视频应为AspectFill或全屏,ios,iphone,swift,avplayer,avplayerviewcontroller,Ios,Iphone,Swift,Avplayer,Avplayerviewcontroller,在登录屏幕上,我必须以全分辨率显示背景视频。我能够做到这一点,双击下面的图片在黑色区域 这是我要求的结果。但这不是通过编码实现的。我只是通过双击黑色区域来实现这一点。 这是我这个类的代码 class loginViewController: UIViewController { @IBOutlet weak var videoView: UIView! let player = AVPlayer() override func viewDidLoad() { super.viewD
class loginViewController: UIViewController {
@IBOutlet weak var videoView: UIView!
let player = AVPlayer()
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.isNavigationBarHidden = true
let myFileManager = FileManager.default
let mainBundle = Bundle.main
let resourcesPath = mainBundle.resourcePath!
guard let allItemsInTheBundle = try? myFileManager.contentsOfDirectory(atPath: resourcesPath) else {
return
}
let videoName = "login_video"
let videoPath = Bundle.main.path(forResource: videoName, ofType: "mp4")
let videoUrl = URL(fileURLWithPath: videoPath!)
let player = AVPlayer(url: videoUrl)
let controller=AVPlayerViewController()
controller.player=player
let playerLayer = AVPlayerLayer(player: self.player)
playerLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill;
controller.showsPlaybackControls = false
controller.view.frame = self.view.frame
videoView.addSubview(controller.view)
self.addChildViewController(controller)
player.play()
player.actionAtItemEnd = .none
loopVideo(player: player)
}
func loopVideo(player: AVPlayer) {
NotificationCenter.default.addObserver(forName: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil, queue: nil) { notification in
player.seek(to: kCMTimeZero)
player.play()
}
}
}
有人能告诉我如何才能达到这个要求的结果吗。我找到了这个解决办法,但还没找到
let playerLayer = AVPlayerLayer(player: self.player)
playerLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill;
请告诉我更好的方法。
提前感谢。此代码不起任何作用:
let playerLayer = AVPlayerLayer(player: self.player)
playerLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill;
所做的只是创建一个新的玩家层并将其丢弃
avplayervewcontroller已经有了一个播放器层!设置AVPlayerViewController的视频重力
controller.videoGravity = ...