zoukankan      html  css  js  c++  java
  • iOS 屏幕录制功能

    系统框架

    #import <ReplayKit/ReplayKit.h> // 系统视频录制框架

    声明协议

    <RPPreviewViewControllerDelegate>

    实现代码:

    {
        // notice
        // 在点击录制按钮后会弹出用户允许提示,分别为录制屏幕与音频、只录制屏幕与不允许。
        //RepalyKit与AVPlayer不相互兼容,所以RepalyKit可能无法录制AVPlayer呈现的画面
        //判断是否已经开始录制回放
        if (sender.isSelected) {
            //停止录制回放,并显示回放的预览,在预览中用户可以选择保存视频到相册中、放弃、或者分享出去
            [[RPScreenRecorder sharedRecorder] stopRecordingWithHandler:^(RPPreviewViewController * _Nullable previewViewController, NSError * _Nullable error) {
                if (error) {
                    NSLog(@"%@", error);
                    //处理发生的错误,如磁盘空间不足而停止等
                }
                if (previewViewController) {
                    //设置预览页面到代理
                    previewViewController.previewControllerDelegate = self;
                    [self presentViewController:previewViewController animated:YES completion:nil];
                }
            }];
            sender.selected = NO;
            return;
        }
        //如果还没有开始录制,判断系统是否支持
        if ([RPScreenRecorder sharedRecorder].available) {
            NSLog(@"OK");
            sender.selected = YES;
            //如果支持,就使用下面的方法可以启动录制回放
            [[RPScreenRecorder sharedRecorder] startRecordingWithMicrophoneEnabled:YES handler:^(NSError * _Nullable error) {
                NSLog(@"%@", error);
                //处理发生的错误,如设用户权限原因无法开始录制等
            }];
        } else {
            NSLog(@"录制回放功能不可用");
        }
    }

    回放预览界面的代理方法

    - (void)previewControllerDidFinish:(RPPreviewViewController *)previewController {
        //用户操作完成后,返回之前的界面
        [previewController dismissViewControllerAnimated:YES completion:nil];
    }

    -------------------- over -----------------

  • 相关阅读:
    网站添加手机短信功能
    FileWriter的正确使用,请及时关闭流
    myeclipse9.0没有提示
    Integer.getInteger,are you kinding me? 好吧, 我还是没怎么弄明白,求高人解答。。。
    构造方法充当临时对象&Calendar的使用
    关于Spring IOC的一点个人理解
    在JAVA中使用GUID
    动态生成table下的<tr>标签不显示
    MD5加密实例
    String,StringBuffer 和 StringBuilder 的区别
  • 原文地址:https://www.cnblogs.com/110-913-1025/p/9388956.html
Copyright © 2011-2022 走看看