Unity IOS 录屏

简介: 用到的是ios的replaykit,现在使用的unity 2017.1.f3版本已经自己集成了,所以调用相应提供的接口就可以,很简单但是目前测试会在安装后第一次录屏的时候出现黑屏录屏失败的情况,所以可以采用第一次初始化的时候先录制然后放弃保存避免这个...

用到的是ios的replaykit,现在使用的unity 2017.1.f3版本已经自己集成了,所以调用相应提供的接口就可以,很简单

但是目前测试会在安装后第一次录屏的时候出现黑屏录屏失败的情况,所以可以采用第一次初始化的时候先录制然后放弃保存避免这个问题,间隔1s,马上执行放弃保存操作会失败,以后正常录制没有问题

代码如下

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.Apple.ReplayKit;

public class PluginsForIOS : MonoBehaviour
{

    public const string Name = "PluginsForIOS";
    static PluginsForIOS() { }
    protected PluginsForIOS() { }
    protected static volatile PluginsForIOS instance = null;
    protected readonly object syncRoot = new object();
    protected static readonly object staticSyncRoot = new object();

    public static PluginsForIOS Instance
    {
        get
        {
            if (instance == null)
            {
                lock (staticSyncRoot)
                {
                    if (instance == null)
                    {
                        GameObject PluginsForIOSObj = new GameObject(Name);
                        instance = PluginsForIOSObj.AddComponent<PluginsForIOS>();
                    }
                }
            }
            return instance;
        }
    }
#if UNITY_IPHONE

   
    #region ReplayKit

    public static string LastError = "";
    public static bool Recording = false;
    public static void StartRecord()
    {
        if (ReplayKit.APIAvailable)//表示ReplayKit API是否可用(True表示可用)
        {
            if (!Recording)
            {
                try
                {
                    Recording = true;
                    ReplayKit.StartRecording(true, false);//开始录像,第一个参数是否开采集麦克风,第二个使用预览视图(目前没找到怎么用,判断跟广播功能有关)
                }
                catch (Exception e)
                {
                    LastError = e.ToString();
                }
            }
        }
        else
        {
            Debug.Log("StartRecording");
        }
    }

    public static void StopRecord()
    {
        if (ReplayKit.APIAvailable)//表示ReplayKit API是否可用(True表示可用)
        {
            Instance.StartCoroutine(Instance.IEStopRecord());
        }
        else
        {
            Debug.Log("StopRecord");
        }
    }

    IEnumerator IEStopRecord()
    {
        try
        {
            ReplayKit.StopRecording();//停止录屏
        }
        catch (Exception e)
        {
            LastError = e.ToString();
        }
        yield return new WaitForSeconds(2f);
        Recording = false;
        PreviewRecord();//开启预览窗口
    }
    public static void PreviewRecord()
    {
        if (ReplayKit.recordingAvailable)//表示新录制可用于预览(True表示可用)
        {
            ReplayKit.Preview();//预览当前录像
        }
        else
        {
            Debug.Log("PreviewRecord");
        }
    }
    public static void DiscardRecord()
    {
        if (ReplayKit.recordingAvailable)//表示新录制可用于预览(True表示可用)
        {
            ReplayKit.Discard();
        }
        else
        {
            Debug.Log("DiscardRecord");
        }
    }

    public static void PauseRecord()//丢弃录制
    {

    }
    #endregion

#endif
}


相关文章
|
2月前
|
Android开发 iOS开发 计算机视觉
Airtest新增iOS、Windows录屏功能,真香!
Airtest新增iOS、Windows录屏功能,真香!
|
测试技术 Android开发 iOS开发
一分钟教你Android、iOS如何实现自动化录屏,超实用!
在做移动端自动化测试的过程中,有很多场景需要录制设备的屏幕视频,比如Crash现场记录,启动/页面加载耗时类的评测等,那么如何实现Android和iOS设备的屏幕录制呢?
874 0
|
自然语言处理 Java C#
浅谈 Unity、iOS、Android 闭包的使用方法
浅谈 Unity、iOS、Android 闭包的使用方法
211 0
浅谈 Unity、iOS、Android 闭包的使用方法
|
图形学 iOS开发
Unity 之 代码获取IOS设备型号
两种方式获取IOS设备型号,一种可以根据机型进行处理,另外一种则是按照屏幕比例进行分类,一起来了解一下吧~
490 0
Unity 之 代码获取IOS设备型号
|
存储 JSON 图形学
Unity 读取Cocos本地化数据 -- 基于IOS
使用Unity读取Cocos存储的数据的尝试过程和具体实现。
246 0
Unity 读取Cocos本地化数据 -- 基于IOS
|
API 开发工具 图形学
Unity 接入友盟统计过程详解(IOS)
Unity 接入友盟统计过程详解(IOS)
274 0
Unity 接入友盟统计过程详解(IOS)
|
图形学 iOS开发
Unity 之 记录打包IOS首次安装启动弹窗通知权限问题
IOS应该如何去掉首次进程序的获取权限确认框。
654 0
Unity 之 记录打包IOS首次安装启动弹窗通知权限问题
|
存储 图形学 数据安全/隐私保护
零基础教你Unity接入IOS原生本地推送
从新建项目开始保姆级教程,教你Unity接入IOS原生本地推送。
708 0
零基础教你Unity接入IOS原生本地推送
|
图形学 iOS开发 开发者
Unity 之 接入IOS内购过程解析
看完此文章你可以了解IOS内购接入全过程,可以学习到Unity从零接入内购功能
1149 0
Unity 之 接入IOS内购过程解析
|
iOS开发 开发者
iOS录屏框架ReplayKit的应用总结
iOS录屏框架ReplayKit的应用总结
988 0