FrameRecording¶
演示eif文件的录制和使用。
演示如何录制eif文件
演示如何使用eif文件进行回放和调试
用法¶
详解¶
场景中的Frame recorder¶
如果要使用frame录制功能,需要在场景中添加 FrameRecorder。详细的配置说明可以参考API文档。
可以在inspector或脚本中设置保存录制的eif文件的文件路径。这个样例在脚本中设置。
配置可以使用FrameRecorder的ARSession¶
这个样例在脚本中进行配置。需要在ARSession.Start调用之前配置好。
var picker = easyarObject.GetComponentInChildren<ARComponentPicker>();
picker.FrameRecorder = ARComponentPicker.SingleSelection.FirstAvailableActiveChild;
recorder = easyarObject.GetComponentInChildren<FrameRecorder>();
recorder.FilePathType = WritablePathType.Absolute;
recorder.FilePath = filePath;
在你自己的工程里,你也可以直接在场景中配置ARSession使用FrameRecorder
启动/停止 FrameRecorder¶
可以使用 FrameRecorder.enabled 开关FrameRecorder。
recorder.enabled = val;
场景中的Frame player¶
如果要使用frame播放功能,需要在场景中添加 FramePlayer。详细的配置说明可以参考API文档。
可以在inspector或脚本中设置需要播放的eif文件的文件路径。这个样例在脚本中设置。
配置可以使用FramePlayer的ARSession¶
这个样例在脚本中进行配置。需要在ARSession.Start调用之前配置好。
var picker = easyarObject.GetComponentInChildren<ARComponentPicker>();
picker.FramePlayer = ARComponentPicker.SingleSelection.FirstAvailableActiveChild;
player = easyarObject.GetComponentInChildren<FramePlayer>();
player.FilePathType = WritablePathType.Absolute;
player.FilePath = filePath;
在你自己的工程里,你也可以直接在场景中配置ARSession使用FramePlayer
启动/停止 FramePlayer¶
可以使用 FramePlayer.Play 和 FramePlayer.Stop 开关FramePlayer。
if (val)
{
player.Play();
}
else
{
player.Stop();
}
FramePlayer是一种FrameSource,在使用FramePlayer时,其它FrameSource不会被启用。
eif文件的使用¶
FrameRecorder生成的eif文件可以用作设备调试。在设备上录制eif文件后,frame(包括图像、相机参数、跟踪状态等)将被存储在文件中。这个文件可以在Windows或Mac上模拟运动跟踪功能,驱动稀疏空间地图或稠密空间地图工作。
使用这个样例,可以在Android或iOS设备上录制eif并在Windows或Mac上播放,只需要修改脚本中的文件路径即可。
如果需要录制eif并用作运动跟踪或空间地图的调试,需要在录制的时候在场景中使用具有运动跟踪功能的FrameSource。
录制的eif文件不是运行时数据的完整拷贝,低端设备上录制的数据帧率可能会降低。