你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS9 ReplayKit錄制視頻

iOS9 ReplayKit錄制視頻

編輯:IOS開發綜合

 

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() {
        rootViewController?.presentViewController(self.previewViewController!, animated: true, completion: { () -> Void in
            print("display complete")
        })
    }

    // MARK: - delegate
    func previewControllerDidFinish(previewController: RPPreviewViewController) {
        previewController.dismissViewControllerAnimated(true) { () -> Void in

        }
    }
}
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved