Recorder Class¶
这个类型是C#语言的 EasyAR Sense API: Recorder 。页面中部分描述可能与Unity环境无关。
这个类型已经完全封装进Unity组件: VideoRecorder 。不需要直接使用这个类型。
Description¶
Recorder 实现了对当前渲染环境的屏幕录制功能。
当前Recorder 只在 Android(4.3 或更新)和 iOS的OpenGL ES 3.0 环境下工作。
由于依赖于OpenGLES,本类的所有函数(除requestPermissions以外,包括析构函数)都必须在单个包含OpenGLES上下文的线程中调用。
Unity Only Unity中如果使用Multi-threaded rendering功能,则脚本线程将与渲染线程分离,无法在渲染线程上调用updateFrame。因此,如果需要使用屏幕录制功能,应禁用Multi-threaded rendering功能。
Android使用时需要在AndroidManifest.xml中加入android.permission.RECORD_AUDIO权限声明。
iOS使用时需要在Info.plist中加入NSMicrophoneUsageDescription权限声明。
Methods¶
isAvailable¶
- C#
public static bool isAvailable()
只在Android 4.3以上或iOS平台下返回true。
requestPermissions¶
- C#
public static void requestPermissions( CallbackScheduler callbackScheduler, Optional<Action< PermissionStatus , string>> permissionCallback)
请求录屏所需的系统权限。你可以选择使用这个函数或自己调用系统函数申请权限。只在Android和iOS平台上有效,其他平台上的行为为直接调用回调通知权限已授权。应在UI线程调用该函数。
create¶
- C#
public static Recorder create( RecorderConfiguration config, CallbackScheduler callbackScheduler, Optional<Action< RecordStatus , string>> statusCallback)
创建并初始化录屏功能。statusCallback回调中会通知一些状态变化和对应的日志。
start¶
- C#
public virtual void start()
开始录屏。
updateFrame¶
- C#
public virtual void updateFrame( TextureId texture, int width, int height)
使用texture录制一帧数据。
stop¶
- C#
public virtual bool stop()
停止录屏。在调用stop之后,会等待文件写入结束并返回录制是否成功的结果。