[Xcode10 实际操作]六、媒体与动画-(16)使用MediaPlayer框架播放视频

本文将演示视频的播放功能。

在项目名称上点击鼠标右键,弹出右键菜单,

选择【Add Files to "DemoApp"】,往项目中导入文件命令。

点击选择一个影片素材->【Add】

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

 1 import UIKit
 2 //AVFoundation框架用来处理基于时间的媒体数据。
 3 //可以用来检查、创建、编辑或是重新编码媒体文件。
 4 //也可以从设备中获取输入流
 5 //在视频实时播放时操作和回放
 6 import AVFoundation
 7
 8 class ViewController: UIViewController {
 9
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: "movie", ofType: "mp4")
16         //将字符串路径,转换为网址路径
17         let movieURL = URL(fileURLWithPath: moviePath!)
18
19         //对视频播放对象进行初始化,并加载指定的视频文件。
20         //该对象提供了控制播放器传输行为的界面。
21         //例如播放、暂停、改变播放速度的能力,
22         //以及在媒体时间线内,寻找各个时间点的能力
23         let avPlayer = AVPlayer(url: movieURL as URL)
24         //视频播放对象本身并不显示视频,
25         //如果要显示视频内容,必须创建一个播放器图层对象。
26         let avPlayerLayer = AVPlayerLayer(player: avPlayer)
27         //设置视频播放器的窗口大小,匹配视图控制器的根视图。
28         avPlayerLayer.frame = self.view.bounds
29         //保留视频的宽高比,并对视频进行缩放,以填满层的范围区域。
30         avPlayerLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
31         //将视频播放层,添加到当前视图控制器的根视图的层中
32         self.view.layer.addSublayer(avPlayerLayer)
33
34         //调用视频播放对象的播放方法,开始播放视频
35         avPlayer.play()
36     }
37 }

原文地址:https://www.cnblogs.com/strengthen/p/10040966.html

时间: 2024-10-06 23:35:37

[Xcode10 实际操作]六、媒体与动画-(16)使用MediaPlayer框架播放视频的相关文章

[Xcode10 实际操作]六、媒体与动画-(7)遍历系统提供的所有滤镜

本文将演示系统到底提供了多少滤镜供开发者使用,并了解每个滤镜都有哪些参数需要配置. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 1 import UIKit 2 //首先导入要使用的框架,该框架提供了强大和高效的图像处理功能, 3 //用来对基于像素的图像进行分析.操作和特效处理 4 import CoreImage 5 6 class ViewController: UIViewController { 7 8 override func viewDid

[Xcode10 实际操作]六、媒体与动画-(8)使用CATransaction Reveal制作渐显动画

本文将演示如何制作渐显动画. 图片的不透明度逐渐发生了变化,从而产生作渐显动画的效果. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the v

[Xcode10 实际操作]六、媒体与动画-(9)使用CATransaction Push制作入场动画

本文将演示如何制作入场动画. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8

[Xcode10 实际操作]六、媒体与动画-(5)使用CoreImage框架给图片添加马赛克效果

本文将演示如何使用CoreImage图像处理框架,给图片添加像素化的滤镜效果. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 1 import UIKit 2 //首先导入要使用的框架,该框架提供了强大和高效的图像处理功能, 3 //用来对基于像素的图像进行分析.操作和特效处理 4 import CoreImage 5 6 class ViewController: UIViewController { 7 8 override func viewDidLo

[Xcode10 实际操作]六、媒体与动画-(6)使用UIBlurEffect给图片添加模糊效果

本文将演示如何给图像添加模糊效果. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib.

[Swift通天遁地]八、媒体与动画-(10)在项目中播放GIF动画

本文将演示使用第三方类库播放GIF动画. 首先确保已经安装了所需的第三方类库.双击查看安装配置文件[Podfile] 1 platform :ios, '12.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'SwiftGifOrigin', '~> 1.6.1' 7 end 根据配置文件中的相关设置,安装第三方类库. 安装完成之后,双击打开项

[Swift通天遁地]八、媒体与动画-(1)实现音频的播放和停止

本文将演示实现对音频播放的控制. 首先确保在项目中,已经安装了所需的第三方类库,点击查看安装的配置文件. 1 platform :ios, '8.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'CryptoSwift', :git => "https://github.com/krzyzanowskim/CryptoSwift"

GIS基础软件及操作(六)

原文 GIS基础软件及操作(六) 练习六.空间分析的应用 1.加深对缓冲区分析基本原理.方法的认识:2.熟练掌握距离制图创建缓冲区技术方法.3.掌握利用缓冲区分析方法解决地学空间分析问题的能力. 1. 距离制图-创建缓冲区 数据准备:图层文件point.shp,lline.shp,polygon.shp 1.1 点要素图层的缓冲区分析 1) 在ArcMap中新建地图文档,加载图层:StudyArea,point 2) 打开Arctoolbox,执行命令<Spatial Analyst工具>-&

栈的基础操作——2,8,16进制的入栈——数组类型定义

#define stack_init_size 100 #define stackincrement 10 typedef int ElemType; typedef int status; const status error=0; const status ok=1; const status overflow=-2; const int MAXSIZE = 100; typedef struct { ElemType elem[MAXSIZE]; int top; } SqStack; s