iOS9 ReplayKit錄製視頻

來源:互聯網
上載者:User

標籤: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 UIKitimport ReplayKitclass 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錄製視頻

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.