大佬教程收集整理的这篇文章主要介绍了Swift教程-视频拍摄教程,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
原文链接:Take Video Tutorial in iOS8 with Swift
原文日期:2015/07/09
苹果公司提供了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
@H_419_46@Assistant Editor(关联面板),并确保ViewController.swift
文件是打开着的。按住Control
键,把第一个按钮拖出到ViewController.swift
文件中,并创建下面的Action
ViewController.swift
文件,并创建下面的ViewController.swfit
文件,并在文件顶部添加下面代码:
import @H_44_77@mobileCoreservices
AssetsLibrary
修改ViewController
类的声明:
class ViewController: UIViewController,UINavigationControllerDelegate,0)">UIImagePickerControllerDelegate {
ViewController
类中需要实现UIImagePickerController
的代理方法。实现takeVideo
方法:
@IBACtion func takeVideo(sender: AnyObject) {
// 1 check if project runs on a device with camera available
if UIImagePickerController.issourceTypeAvailable(.Camera) {
// 2 Present UIImagePickerController to take video
controller.sourCEType = .Camera
controller.mediaTypes = [kUTTypeMovie as! String]
controller.delegate = self
controller.videoMaximumDuration = 10.0
presentViewController(controller,animated: true,completion: nil)
}
else {
println("Camera is not available")
}
}
issourceTypeAvailable
用来检测设备是否支持拍摄视频。ImagePickerController
的数据可以是Camera
或@H_337_28@movie(图片和视频)两种类型。视频的@H_337_28@maximum(拍摄视频的最长时间)长度设置为10秒。 实现viewLibrary
方法:
viewLibrary(sender: AnyObject) {
// Display Photo Library
controller.sourCEType =
UIImagePickerControllersourceType.PhotoLibrary
controller.mediaTypes = [kUTTypeMovie String]
controller.delegate = self
presentViewController(controller,completion: nil)
}
点击按钮就会打开相册。如果@H_337_28@mediaType没有被设置为视频类型,那么视频文件就不会显示,只会显示图片资源。下面实现UIImagePickerControllerDelegate
:
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 String
if StringType == kUTTypeMovie String {
let urlOfVideo = info[UIImagePickerControllerMediaURL] as? NSURL
let url = urlOfVideo {
// 2
AssetsLibrary.writeVideoAtPathToSavedPhotosAlbum(url,completionBlock: {(url: NSURL!,error: NSError!) in
let theError = error{
"Error saving video = \(theError)")
}
else {
"no errors happened")
}
})
}
}
}
}
// 3
picker.dismissviewControllerAnimated(true,completion: nil)
}
imagePickerController(_:didFinishPickingMediaWithInfo:)方法告诉代理,用户选择了一段视频。info
参数包含了选中的视频的URL
数据
info
的@H_337_28@mediatype参数可用于检测参数是否是@H_337_28@movie类型。如果是就@L_489_35@视频的URL
writeVideoAtPathToSavedPhotosAlbum
方法会把视频保存到手机相册中ViewController
视图消失imagePickerControllerDidCancel方法:
imagePickerControllerDidCancel(picker: UIImagePickerController) {
picker.dismissviewControllerAnimated(true,sans-serif; font-size:16px; line-height:27.2px"> 当用户点击Cancel
按钮时,View Controller
视图就会消失掉。如果模拟器没有视频文件,请在真实的设备上编译并运行这个项目。选择”Take Video“拍摄一段视频并选择”Use Video“,接着选择”View Library“,视频就会保存到手机相册中了。
大佬总结
以上是大佬教程为你收集整理的Swift教程-视频拍摄教程全部内容,希望文章能够帮你解决Swift教程-视频拍摄教程所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。