iOS9 ReplayKit录制视频
2015-12-11 10:51
417 查看
猴子原创,欢迎转载。转载请注明: 转载自Cocos2Der-CSDN,谢谢!
原文地址: http://blog.csdn.net/cocos2der/article/details/50260873
iOS9的ReplayKit 视频录制,api非常简单,下面是代码,Objective-C的类似,就不写了。
原文地址: http://blog.csdn.net/cocos2der/article/details/50260873
iOS9的ReplayKit 视频录制,api非常简单,下面是代码,Objective-C的类似,就不写了。
// // ReplayKitProxy.swift // ReplayKitDemo // // Created by LiuYanghui on 15/12/11. // Copyright © 2015年 LiuYanghui. All rights reserved. // import UIKit import ReplayKit class ReplayKitProxy: NSObject, RPPreviewViewControllerDelegate { private var rootViewController: UIViewController? private var previewViewController: RPPreviewViewController? class var sharedInstance : ReplayKitProxy { struct Static { static var onceToken : dispatch_once_t = 0 static var instance : ReplayKitProxy? = nil } dispatch_once(&Static.onceToken) { Static.instance = ReplayKitProxy() Static.instance?.initData() } return Static.instance! } private func initData() { } /// 开始录制视频 func startRecording() { let recorder = RPScreenRecorder.sharedRecorder() if recorder.available == false { print("Replaykit is not available") return } if recorder.recording == true { print("Replaykit is recording") return } recorder.startRecordingWithMicrophoneEnabled(true) { (error) -> Void in if error != nil { print(error?.localizedDescription) } } } /// 停止录制视频 func stopRecording() { let recorder = RPScreenRecorder.sharedRecorder() if recorder.recording == false { return } recorder.stopRecordingWithHandler { (previewViewController, error) -> Void in if error != nil { print(error?.localizedDescription) }else if let viewController = previewViewController{ viewController.previewControllerDelegate = self self.previewViewController = viewController } } } /// 删除已录制视频,必须在stopRecording之后调用 func discardRecording() { let recorder = RPScreenRecorder.sharedRecorder() if recorder.recording == true { return } recorder.discardRecordingWithHandler { () -> Void in print("discardRecording complete") } } /// 显示视频 func displayRecordingContent() { // ipad需要修改显示方式,否则可能会导致sorceView为nil的异常 if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad { self.previewViewController?.modalPresentationStyle = UIModalPresentationStyle.CurrentContext self.previewViewController?.popoverPresentationController?.sourceView = self.rootViewController?.view } rootViewController?.presentViewController(self.previewViewController!, animated: true, completion: { () -> Void in print("display complete") }) } // MARK: - delegate func previewControllerDidFinish(previewController: RPPreviewViewController) { previewController.dismissViewControllerAnimated(true) { () -> Void in } } }
相关文章推荐
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- DVI 视频接口图文解析
- C#实现语音视频录制-附demo源码
- C#调用mmpeg进行各种视频转换的类实例
- C#获取视频某一帧的缩略图的方法
- 显示youtube视频缩略图和Vimeo视频缩略图代码分享
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- PHP使用ffmpeg给视频增加字幕显示的方法
- PHP实现将视频转成MP4并获取视频预览图的方法
- C++实现优酷土豆去视频广告的方法
- PHP简单获取视频预览图的方法
- asp.net 页面中添加普通视频的几种方式介绍
- Android获取SD卡上图片和视频缩略图的小例子
- 简单分析Swift语言的一些基本特征
- Swift与C语言指针结合使用实例
- Swift心得笔记之控制流