[Swift通天遁地]八、媒体与动画-(2)实现视频文件的播放和画中画

[Swift通天遁地]八、媒体与动画-(2)实现视频文件的播放和画中画,第1张

概述本文将演示使用AVPlayerViewController播放视频并实现画中画。 往项目中导入了一个视频文件。 在左侧的项目导航区,打开视图控制器的代码文件【ViewController.swift】  1 import UIKit 2 //在当前的类文件中, 3 //引入需要用到的相关类库 4 import AVFoundation 5 import AVKit 6

本文将演示使用AVPlayerVIEwController播放视频并实现画中画。

往项目中导入了一个视频文件。

在左侧的项目导航区,打开视图控制器的代码文件【VIEwController.swift】 

 1 import UIKit 2 //在当前的类文件中, 3 //引入需要用到的相关类库 4 import AVFoundation 5 import AVKit 6  7 class VIEwController: UIVIEwController,AVPlayerVIEwControllerDelegate { 8      9     var playerVC : AVPlayerVIEwController!10     overrIDe func vIEwDIDLoad() {11         super.vIEwDIDLoad()12         // Do any additional setup after loading the vIEw,typically from a nib.13         14         //获得视频文件在项目中的路径。15         let movIEPath = Bundle.main.path(forResource: "Sunrise",ofType: "mp4")16         //将视频路径转换成网址对象。17         let movIEURL = URL(fileURLWithPath: movIEPath!)18         //初始化一个视频播放器,播放指定的视频文件19         let avPlayer = AVPlayer(url: movIEURL as URL)20         21         //let vIEw = UIVIEw(frame: CGRect(x: 20,y: 180,wIDth: 100,height: 100))22         //vIEw.backgroundcolor = .orange23         //self.vIEw.addSubvIEw(vIEw)24         25         //初始化一个视频播放控制器26         playerVC = AVPlayerVIEwController()27         //设置控制器对象的播放属性28         playerVC.player = avPlayer29         //保持视频的宽高比,并使播放内容自动适应播放窗口的大小30         playerVC.vIDeoGravity = AVLayerVIDeoGravity.resizeAspect31         //设置在特定的设备上,允许画中画模式32         playerVC.allowsPictureInPicturePlayback = true33         //在视频播放时,显示播放控制功能区34         playerVC.showsPlaybackControls = true35         //设置播放器的显示区域,保持和根视图的显示区域相同36         playerVC.vIEw.frame = self.vIEw.bounds37         //设置播放器的代理对象为本身38         playerVC.delegate = self39         40         //通过调用播放器的播放方法,开始播放视频文件。41         playerVC.player!.play()42         //self.vIEw.insertSubvIEw(playerVC.vIEw,belowSubvIEw: vIEw)43         //将视图播放器视图,添加到根视图中44         self.vIEw.addSubvIEw(playerVC.vIEw)45         46         NotificationCenter.default.addobserver(self,selector: #selector(VIEwController.playEnd(notification:)),name: NSNotification.name.AVPlayerItemDidplayToEndTime,object: nil)47     }48     49     func playerVIEwControllerDIDStartPictureInPicture(_ playerVIEwController: AVPlayerVIEwController) {50         print("playerVIEwControllerDIDStartPictureInPicture")51     }52     53     @objc func playEnd(notification: Notification)54     {55         print("playEnd")56         print(playerVC.player?.currentTime() as Any)57         playerVC.player?.seek(to: CMTime(seconds: @[email protected],preferredTimescale: CMTimeScale(NSEC_PER_SEC)))58         playerVC.player!.play()59     }60 61     overrIDe func dIDReceiveMemoryWarning() {62         super.dIDReceiveMemoryWarning()63         // dispose of any resources that can be recreated.64     }65 }

点击项目名称【DemoApp】,进入项目属性设置面板

点击【CapabilitIEs】能力标签,进入项目功能开启面板。

点击右侧的垂直滚动条,点击【Background Modes】设置为【ON】

勾选【Audio、AirPlay、and Picture in Picture】激活视频播放的画中画模式。

模拟器启动后,开始播放项目中的视频文件,点击工具条右侧的画中画图标,切换至画中画模式。

进入画中画模式后,视频在屏幕中的一个浮动窗口中进行播放。

总结

以上是内存溢出为你收集整理的[Swift通天遁地]八、媒体与动画-(2)实现视频文件的播放和画中画全部内容,希望文章能够帮你解决[Swift通天遁地]八、媒体与动画-(2)实现视频文件的播放和画中画所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1020001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存