Swift教程-视频拍摄教程
原文链接:Take Video Tutorial in iOS8 with Swift
原文日期:2015/07/09译者:lfb_CD
校对:numbbbbb
定稿:shanks
苹果公司提供了UIimagePickerController
-这是一个使用 iOS 设备内置的摄像头来拍摄视频的可视化界面。在此教程中,我们将拍摄一段保存到手机相册的视频。教程运行在 iOS 8.4 和 Xcode 6.4 下。
打开 Xcode 并创建一个new Single View Application
,项目名称为IOS8SwiftTakeVideoPlayerTutorial
,接着填上你的Organization Name
和Organization Identifier
,选择 Swift 语言,在设备一栏只选择 iPhone。
打开Storyboard
,然后在主视图中拖入两个按钮,并分别设置两个button
的title
为Take Video
和View Library
。之后你的故事板内容应该像下面这样:
按住 Control
键 并选中两个按钮,点击故事板右下角的Resolve Auto Layout Issues
按钮(就是右下角那个三角形按钮),选择Add Missing Constraints
打开Assistant Editor
(关联面板),并确保ViewController.swift
文件是打开着的。按住 Control
键,把第一个按钮拖出到ViewController.swift
文件中,并创建下面的Action
按住 Control
键,把第二个按钮拖出到ViewController.swift
文件,并创建下面的Action
打开ViewController.swfit
文件,并在文件顶部添加下面代码:
import MobileCoreServices
import AssetsLibrary
修改ViewController
类的声明:
class ViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
ViewController
类中需要实现UIImagePickerController
的代理方法。实现takeVideo
方法:
@IBAction func takeVideo(sender: AnyObject) {// 1 Check if project runs on a device with camera availableif UIImagePickerController.isSourceTypeAvailable(.Camera) {// 2 Present UIImagePickerController to take videocontroller.sourceType = .Cameracontroller.mediaTypes = [kUTTypeMovie as! String]controller.delegate = selfcontroller.videoMaximumDuration = 10.0presentViewController(controller, animated: true, completion: nil)}else {println("Camera is not available")}
}
isSourceTypeAvailable
用来检测设备是否支持拍摄视频。ImagePickerController
的数据可以是Camera
或Movie
(图片和视频)两种类型。视频的maximum
(拍摄视频的最长时间)长度设置为10秒。
实现 viewLibrary
方法:
@IBAction func viewLibrary(sender: AnyObject) {// Display Photo Librarycontroller.sourceType = UIImagePickerControllerSourceType.PhotoLibrarycontroller.mediaTypes = [kUTTypeMovie as! String]controller.delegate = self presentViewController(controller, animated: true, completion: nil)}
点击按钮就会打开相册。如果mediaType
没有被设置为视频类型,那么视频文件就不会显示,只会显示图片资源。下面实现UIImagePickerControllerDelegate
:
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject: AnyObject]) {// 1 let mediaType:AnyObject? = info[UIImagePickerControllerMediaType]if let type:AnyObject = mediaType {if type is String {let stringType = type as! Stringif stringType == kUTTypeMovie as! String {let urlOfVideo = info[UIImagePickerControllerMediaURL] as? NSURLif let url = urlOfVideo {// 2 assetsLibrary.writeVideoAtPathToSavedPhotosAlbum(url,completionBlock: {(url: NSURL!, error: NSError!) inif let theError = error{println("Error saving video = \(theError)")}else {println("no errors happened")}})}} }}// 3picker.dismissViewControllerAnimated(true, completion: nil)
}
imagePickerController(_:didFinishPickingMediaWithInfo:)
方法告诉代理,用户选择了一段视频。info
参数包含了选中的视频的URL
数据
- 字典数据类型的
info
的mediatype
参数可用于检测参数是否是movie
类型。如果是就提取视频的URL
writeVideoAtPathToSavedPhotosAlbum
方法会把视频保存到手机相册中- 让
ViewController
视图消失
实现imagePickerControllerDidCancel
方法:
func imagePickerControllerDidCancel(picker: UIImagePickerController) {picker.dismissViewControllerAnimated(true, completion: nil)
}
当用户点击Cancel
按钮时,View Controller
视图就会消失掉。如果模拟器没有视频文件,请在真实的设备上编译并运行这个项目。选择”Take Video“拍摄一段视频并选择”Use Video“,接着选择”View Library“,视频就会保存到手机相册中了。
你可以在Github上下载IOS8SwiftTakeVideoPlayerTutorial
的代码
Swift教程-视频拍摄教程相关推荐
- Swift - 视频录制教程3(设置拍摄窗口大小,录制正方形视频)
在之前的两篇文章中,我介绍了如何通过 AVFoundation.framework 框架提供的 AVCaptureSession 类来实现视频的录制.以及通过 AVMutableComposit ...
- 苹果Swift语言中文教程资源汇总
苹果swift语言中文教程(零)搭配环境以及代码运行成功http://vjiazhi.com/kaifa/1014.html 苹果Swift语言中文教程(一)基础数据类型 http://vjiazhi ...
- swift 雨燕 新手教程
Apple Swift编程语言新手教程 chox 2014-06-03 文件夹 简单介绍 入门 简单值 控制流 函数与闭包 对象与类 枚举与结构 1 简单介绍 今天凌晨Apple刚刚公布了Swif ...
- 苹果Swift编程语言入门教程【中文版】
Swift代码语言教程:在刚刚过去的WWDC2014大会上,苹果公司新发布了一种编程语言Swift.据悉,Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题,对于广 ...
- 戴维营教育-Swift语言中文教程和配套视频教程更新中
戴维营教育-Swift语言中文教程更新中 http://blog.diveinedu.net/category/ios_8_development/ 戴维营教育-Swift语言的github翻译项目地 ...
- 【运营小卖部】短视频剪辑,短视频拍摄教程,直播教程
短视频玩法教程,抖音热门玩法教程-行业报告文档类资源-CSDN下载短视频玩法教程,抖音热门玩法教程更多下载资源.学习资料请访问CSDN下载频道.https://download.csdn.net/do ...
- Caleb Pike索尼A7 III视频指南DSLR视频拍摄教程 中文字幕 Sony A7 III Video Guide
Caleb Pike索尼A7 III视频指南DSLR视频拍摄教程 中文字幕 Sony A7 III Video Guide 原文地址:https://www.aeziyuan.com/t-20771. ...
- iOS开发Swift语言学习教程-欧阳坚-专题视频课程
iOS开发Swift语言学习教程-16345人已学习 课程介绍 Swift这套视频是针对有Objective-C/iOS基础,想转成Swift开发的学习视频,视频中从Swift语法,结 ...
- swift编程语言基础教程 中文版
swift编程语言基础教程 中文版 http://download.csdn.net/detail/u014036026/7845491
最新文章
- 判断jQuery库是否被正确引入
- LeetCode——Longest Substring Without Repeating Characters
- php 注册树,php常用设计模式(单例,工厂,注册树模式)
- android菜单展开收起,展开、收起状态栏 - Android社区 - https://www.androidos.net.cn/
- Selenium两万字大题库
- cpython vm_【协程原理】 - cPython的VM真变态
- 使用DBUtils实现增删改查
- Android学习入门
- 读入外挂:ios::sync_with_stdio(false)
- 使用mbedtls库实现ftps协议
- java 一年有多少周_Java8根据一年中的第几周获得Monday
- 最新2022中国大学排名发布!
- python计算器基础知识_Python基础知识+计算器练习
- 决策树 基于python实现ID3,C4.5,CART算法
- 为地震死去的孩子们而作(转载)
- 第七届全国计算机大赛作品,常熟理工学院新闻网
- 理解图像卷积操作的意义
- 项目管理实践篇(二):总结项目经历
- 保存准考证电脑快捷键
- 如何快速申请软件著作权,教你避坑!!!
热门文章
- 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 转自:https://www.cnblogs.com/1996V/p/9037603.html#net1...
- CNC五轴编程的全面总结
- 你有没有为自己拼过命?
- 【论文总结】Incremental Learning of Object Detectors without Catastrophic Forgetting(附翻译)
- 一篇关于大黄蜂的鸡汤文的杂想
- java 判断两个经纬度差异_计算两个经纬度点的实际距离
- uni-app 杂记
- [组图]国外专家谈游戏制作
- 开发APP的java工具_app傻瓜式开发工具_app开发工具
- [机器学习与scikit-learn-15]:算法-决策树-分类问题代码详解