iOS的录屏功能

iOS的录屏功能其实没什么好说的,因为网上的教程很多,但是网上的Demo无一例外几乎都有一个bug,那就是iPad上会出现闪退,这也体现了国内的教程文档的一个特点,就是抄袭,教程几乎千篇一律,bug也是一摸一样,经过多次测试,终于找着了解决方案。

废话少说,代码献上。

//开始录屏
extern "C" void startRecord() {
    NSLog(@"开始录屏");
    if ([RPScreenRecorder sharedRecorder].isRecording) {
        return;
    }
//        [[RPScreenRecorder sharedRecorder] startRecordingWithHandler:^(NSError * _Nullable error) {
////            UnitySendMessage("Buttons", "RecordCallback", [RPScreenRecorder sharedRecorder].isRecording ? "true" : "false");
//        }];
    if (isSupportReplayKit()) {
        [[RPScreenRecorder sharedRecorder] startRecordingWithMicrophoneEnabled:YES handler:^(NSError * _Nullable error) {
            NSLog(@"steve :%@", error);
            //处理发生的错误,如设用户权限原因无法开始录制等
        }];
    }

}

//结束录屏
extern "C" void stopRecord() {
    UIButton *sender = [UIButton buttonWithType:(UIButtonTypeRoundedRect)];
    NSLog(@"停止录屏");
    if ([RPScreenRecorder sharedRecorder].isRecording) {
        NSLog(@"正在录屏中");
        [[RPScreenRecorder sharedRecorder] stopRecordingWithHandler:^(RPPreviewViewController * _Nullable previewViewController, NSError * _Nullable error) {
            if (previewViewController) {
                if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad){
                    previewViewController.previewControllerDelegate = previewDelegate;

                    previewViewController.preferredContentSize = CGSizeMake(1536, 2048);
                    previewViewController.modalPresentationStyle = UIModalPresentationPopover;
                    UIPopoverPresentationController *popoverpresentationController = previewViewController.popoverPresentationController;
                    [GetAppController().window.rootViewController presentViewController:previewViewController animated:YES completion:^{
                        UnityPause(YES);
                    }];
                    popoverpresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;
                    popoverpresentationController.sourceRect = sender.bounds;
                    popoverpresentationController.sourceView = sender;
                    }else{
                        previewViewController.previewControllerDelegate = previewDelegate;
                        [GetAppController().window.rootViewController presentViewController:previewViewController animated:YES completion:^{
                            UnityPause(YES);
                        }];
                    }
                   UnitySendMessage("Canvas/Root/gamepanel(Clone)", "HideStopRecordButton", @"".UTF8String);

            }
        }];
    }
}

原文地址:https://www.cnblogs.com/txfd/p/10128807.html

时间: 2024-07-30 08:55:13

iOS的录屏功能的相关文章

【原创】苹果内置录屏SDK-ReplayKit库的使用说明

1 iOS ReplayKit 录屏SDK 说明 (按照苹果官方的说法是App端加入这些苹果的新特性新SDK更容易被苹果推荐 ) ReplayKit是苹果在iOS9上面提供的一个库组件,可以让玩家在游戏中录制游戏视频,并且可以添加语音评论,然后通过社交网络分享出去. 2库的特性说明 要使用ReplayKit需要在工程的Build Phase的Link binary with libraries中加入ReplayKit.framework. 目前这个库只支持真机允许,不支持模拟器. 系统版本如果低

云舒3C录屏管理,企事业单位的千里眼

Cloudsoar3C自V5.0.1版本新增录屏管理以来,公司上下一片欢腾,为产品又能为企事业单位提供优质服务而喝彩.为此,国务院都发来贺电,表示"正值中国人民抗日战争暨世界反法西斯战争胜利70周年,可谓是双喜临门",贺电内容如下 对于这个重大更新,公司领导表现出足够的重视,为此特别鼓励公司音乐才子将<你是我的眼>重新作词谱曲(歌词稍后呈现).当然,这是题外话,接下来就让我们来说道说道云舒3C价值何在,看看这只"千里眼"是如何大显神威的. 录屏管理概念解

小胖说事22-----iOS开发技巧之取消键盘响应和截屏功能

1.UILable内容模糊 在非Retina的iPad mini 的屏幕上,一个UILable的frame的origin值如果是有小数位(如0.5),就会造成显示模糊,所以最好还是用整数值的origin. 2.取消键盘响应 取消键盘响应事件,一般都会用到resignFirstResponder,但是还有三种方法可以取消键盘的响应. 第一种:重载UIViewcontroller中的touchesBegin方法,然后在里边执行 [self.view endEditing:YES]:这样单击UIVie

巧用PPT进行录屏

如果你要进行电脑屏幕操作的录像,你会怎么去做?找第三方软件进行录制?或者找专业视频软件进行录制?这些办法都太Low了.PPT2016就直接附带录屏功能,在PPT中选择到"插入"选项卡,即可看到"屏幕录制"按钮.点击后一件开启录制功能.

详细讲解电脑怎么录屏 电脑录制视频的方法

电脑录屏对于部分用户日常使用还是有一定的需求性,例如需要讲解一些设备的操作步骤,或者是看到一个短视频想要保存下来,都可以通过录屏功能来实现.使用工具:电脑操作方法:一.首先我们可以打开需要录制的视频节目,小编就拿个综艺节目举例了,我们打开它,将其调整播放页面.二.之后设置参数和存储文件夹,即可开始录制我们的视频.点击开始录制或者使用组合键alt+f1,我们便可以开始录制视频.三.结束录制也是十分的简单,点击暂停录制或者使用组合键alt+f2即可结束我们视频的录制.四.最后,如果你想试看你录制的视

iOS 系统级别录屏方式调研

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px ".PingFang SC"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px ".PingFang SC"; color: #454545; min-height: 21.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; fon

Yosemite 给 iOS 录屏

[Yosemite 给 iOS 录屏] Mac 升级到Yosemite后,支持iOS屏幕录制.把Mac和iPhone用数据线相连.打开QuickTime Player,新建一个影片. 从摄像头源中选择自己iPhone即可.

Android系统自带录屏(动态截屏)功能

 Android系统(Android 4.4 或以上)自带有录屏(动态截屏)功能,基于命令行. 具体方法是: adb shell screenrecord /sdcard/myrecord.mp4 这段命令在控制台执行后,Android系统将立即对设备的屏幕录制屏幕的视频.adb shell screenrecord 是执行录屏:sdcard/myrecord.mp4 是视频文件存放的目录,录制后的视频文件存放在sdcard的根目录下,myrecord.mp4即是视频文件. Ctrl + C

iOS 画板的实现,具有颜色、线宽、橡皮、撤销和清屏功能

完成一个简单的画板,能够实现画板颜色和线宽的选择,以及橡皮功能,撤销前一步的操作,和清屏功能. 效果图: 工程下载:github工程下载链接 主要应用MVC模式进行代码架构,每一部分的代码实现思路在各部分的代码前面. Controller 控制器实现基本思路: 1.添加工具栏和画板 2.ToolView中block的定义,colorBlock,widthBlock就是设置drawView的color:eraseBlock就设置其lineWidth和lineColor的具体值:undoBlock,