iOS9 ReplayKit录制视频

猴子原创,欢迎转载。转载请注明: 转载自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

        }
    }
}
时间: 2024-08-06 07:57:55

iOS9 ReplayKit录制视频的相关文章

在Ubuntu上录制视频和编辑(很全)

Linux多媒体三剑客:GIMP,Inkscape,Blender3D Blender基金会制作的开源微电影Sintel:http://www.sintel.org/about电影采用Creative Commons Attribution 3.0授权.整个电影的制作,完全采用开源软件.使用64位Linux的图形工作站,用Blender进行3D图形,合成和视频编辑任务,用GIMP和Inkscape作图和绘画,在OpenEXR中渲染输出,用Python写脚本,在SVN中储存数据等等. 在Ubunt

Android开发之打开闪光灯录制视频

Android的SDK在线API上对录制视频的方法.步骤都写得非常清楚,但是如果没有一点思路,写起来也比较式费事.录制视频的全过程要打开闪光灯(可能是因为项目需要,或者特殊原因),则必须按照一定的顺序进行开关,毕竟容易出错.要实现录制的同时开启闪光灯也不难,官方API给出了一个大体的步骤.因为要采集点视频数据,临时写了个简单的Demo学习下,必要时再深度开发. 首先在工程中的AndroidManifest.xml中添加权限声明,因为要使用到摄像头,故需要添加Camera的相关权限,另外还需要写S

bandicam如何录制视频

我们一般都很熟悉这类软件:屏幕录制专家和kk录制等,这些都是国内比较优秀的作品.不过exe的封装格式以及录制的清晰度让人很纠结.所以这里要为大家分享的是一款韩国人写录制软件Bandicam.Bandicam能很轻松的录制电脑的屏幕操作和游戏等视频录制,录制出来的视频高清,容量小,重要的是直接支持h264编码录制.还有一个很重要的一点就是其他国家的人也在使用,特别是俄罗斯,这就意味着一些特殊的支持-- 这里将分享我的一些经验,较为具体地说说如何用bandicam录制一个让人满意的视频.其中的DX录

Appuim项目实战---录制视频

背景:在app测试中,很多场景当时出现,后期无法出现,如果这个时候就通过录制视频的方式记录那么问题就很快解决了,录制视频的简单命令:adb shell screenrecord --time-limit 10 /sdcard/demo.mp4 默认录制10分钟就结束,注意我录制视频是会使用ip,默认录制视频使用的屏幕都很大,我们可以换个小的屏幕,具体录制视频adb参数可以看这篇博客http://blog.csdn.net/wirelessqa/article/details/22725581 在

Camtasia Studio 录制视频格式trec压缩发布最佳方案

在使用了一段时间Camtasia Studio后,录制视频格式trec,在[生成和分享]中,转换格式有很多种,但是经过尝试,按一下方式效果和大小得到完美控制: 1.首先,在 调  视频的 [编辑尺寸]到1080p,不要采用默认的720p 2.其次,在[生成和分享]选择后,选择[自定义生成设置],然后选择[推荐]即MP4,然后再 然后一直默认下去即可. 当然,在下一步的有一个[视频]选项卡,你要保证 视频大小确实是你的最佳分辨率大小.至于质量的压缩比例50%就行,70%的会压缩后的大小会更大而且质

从摄像头录制视频实现

收藏两个摄像头录制视频的demo之一:基于opencv实现 QT PRO文件需要加入:LIBS +=   -lopencv_core -lopencv_highgui,或者使用g++ 利用这个参数来编译非QT环境的代码. #include <QCoreApplication> #include <QtGui/QCloseEvent> #include<opencv/cv.h> #include<opencv/highgui.h> void closeEven

录制视频心得

最近利用周末的时间,陆陆续续录制了一些视频,渐渐有了一些状态,其实每段视频都是反复录制,因为总感觉不满意,但我想后面的视频会越录越好. 面对学生讲课和面对屏幕讲课的还是有区别的,面对学生可以看到学生的表情,同时你也可以通过身体的动作来带动他们的思路,而录制视频我们是看不到的,只能想象学生的听课状态,然后每次剪辑,看哪段录制不好,重新录制,总之目标就是录制质量好的视频分享给大家. 路还很长,这只是刚刚开始,很幸运背后有支持我的小团队,我们一直走在路上,也欢迎大家提供更好的建议,休息片刻,继续录制,

Android 使用意图录制视频

本文章主要将通过意图触发内置的Camera应用程序来录制视频. 源代码: 布局文件: activity_main: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" androi

3D图片采集与展示(SurfaceView 自适应 Camera, 录制视频, 抽取帧)

      最近在做一个3D图片采集与展示. 主要功能为:自定义Camera(google 已经摈弃了Camera, 推荐使用Camera2,后续篇幅,我将会用Camera2取代Camera),围绕一个物体360度录制一个视频,然后在该视频抽取一定数量的帧,保存为图片存放.最后在一个Activity页面展示第一张图片,通过滑动或点击切换下一张图片,从而形成用图片展示的3D效果.该项目主要的目的是采集3D图片素材,然后上传到服务器处理,最终在用户客户端或网页端展示是通过OpenGL ES处理而来.