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
}


相关文章
|
6月前
|
Android开发 iOS开发 计算机视觉
Airtest新增iOS、Windows录屏功能,真香!
Airtest新增iOS、Windows录屏功能,真香!
168 0
|
测试技术 Android开发 iOS开发
一分钟教你Android、iOS如何实现自动化录屏,超实用!
在做移动端自动化测试的过程中,有很多场景需要录制设备的屏幕视频,比如Crash现场记录,启动/页面加载耗时类的评测等,那么如何实现Android和iOS设备的屏幕录制呢?
1011 0
|
3月前
|
语音技术 开发工具 图形学
Unity与IOS⭐一、百度语音IOS版Demo调试方法
Unity与IOS⭐一、百度语音IOS版Demo调试方法
|
3月前
|
图形学 Android开发 iOS开发
穿越数字洪流,揭秘Unity3d中的视频魔法!Windows、Android和iOS如何征服RTSP与RTMP的终极指南!
【8月更文挑战第15天】在数字媒体的海洋中,实时视频流是连接世界的桥梁。对于那些渴望在Unity3d中搭建这座桥梁的开发者来说,本文将揭示如何在Windows、Android和iOS平台上征服RTSP与RTMP的秘密。我们将深入探讨这两种协议的特性,以及在不同平台上实现流畅播放的技巧。无论你是追求稳定性的RTSP拥趸,还是低延迟的RTMP忠实粉丝,这里都有你需要的答案。让我们一起穿越数字洪流,探索Unity3d中视频魔法的世界吧!
61 2
|
3月前
|
语音技术 开发工具 图形学
Unity与IOS⭐二、Unity接入IOS版百度语音:语音唤醒
Unity与IOS⭐二、Unity接入IOS版百度语音:语音唤醒
Unity与IOS⭐二、Unity接入IOS版百度语音:语音唤醒
|
2月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
137 0
|
3月前
|
图形学 iOS开发
Unity与IOS⭐最基础的交互演示
Unity与IOS⭐最基础的交互演示
|
3月前
|
开发工具 图形学 iOS开发
Unity与IOS⭐Unity接入IOS SDK的流程图
Unity与IOS⭐Unity接入IOS SDK的流程图
|
3月前
|
图形学 数据安全/隐私保护 iOS开发
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
|
自然语言处理 Java C#
浅谈 Unity、iOS、Android 闭包的使用方法
浅谈 Unity、iOS、Android 闭包的使用方法
260 0
浅谈 Unity、iOS、Android 闭包的使用方法