码迷,mamicode.com
首页 > 移动开发 > 详细

iOS9 ReplayKit录制视频

时间:2017-06-19 19:37:21      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:available   user   dismiss   ide   smi   sub   text   control   elf   

猴子原创,欢迎转载。转载请注明: 转载自Cocos2Der-CSDN,谢谢!
原文地址: http://blog.csdn.net/cocos2der/article/details/50260873

iOS9的ReplayKit 视频录制,api很easy,以下是代码,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 } } }

iOS9 ReplayKit录制视频

标签:available   user   dismiss   ide   smi   sub   text   control   elf   

原文地址:http://www.cnblogs.com/clnchanpin/p/7049923.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!