本文将演示使用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)实现视频文件的播放和画中画所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)