Namespace easyar
类
- Accelerometer
Accelerometer调用了系统提供的加速度计,输出 AccelerometerResult 。 当不再需要该设备时,可以调用close对其进行关闭。close之后不应继续使用。 不建议同时打开多次,可能会无法使用或精度下降。
- AccelerometerResult
加速度计读数。 x轴正方向从设备中心指向屏幕右部。 y轴正方向从设备中心指向屏幕上部。 z轴正方向从设备中心垂直屏幕向外。 x, y, z单位为m/s^2。 timestamp单位为秒。
- AccelerometerResultSink
加速度计结果输入端口。 用于暴露一个组件的输入端口。 本类的所有成员都是线程安全的。
- AccelerometerResultSource
加速度计结果输出端口。 用于暴露一个组件的输出端口。 本类的所有成员都是线程安全的。
- ARCoreCameraDevice
ARCoreCameraDevice实现了一个基于ARCore的camera设备,输出 InputFrame (包含图像、摄像机参数、时间戳、6DOF位置信息和跟踪状态)。 使用时需要先使用java.lang.System.loadLibrary加载libarcore_sdk_c.so。 创建之后,可以调用start/stop来开始和停止采集视频流数据。 当不再需要该设备时,可以调用close对其进行关闭。close之后不应继续使用。 ARCoreCameraDevice通过inputFrameSource输出 InputFrame ,应将inputFrameSource连接到 InputFrameSink 上进行使用。 bufferCapacity表示 InputFrame 缓冲的容量,如果有超过此数量的 InputFrame 从该设备中输出并且没有被释放,该设备将不再输出新的 InputFrame ,直到之前的 InputFrame 被释放。这可能造成画面卡住等问题。 注意:当前ARCore(v1.13.0)的实现在创建和销毁session时存在内存泄漏,多次创建和销毁会导致内存占用不断增长且销毁后也不释放。
- ARCoreDeviceListDownloader
ARCoreDeviceListDownloader用于下载更新ARCoreCameraDevice中使用的设备列表标定参数。
- ARKitCameraDevice
ARKitCameraDevice实现了一个基于ARKit的camera设备,输出 InputFrame (包含图像、摄像机参数、时间戳、6DOF位置信息和跟踪状态)。 创建之后,可以调用start/stop来开始和停止采集视频流数据。 当不再需要该设备时,可以调用close对其进行关闭。close之后不应继续使用。 ARKitCameraDevice通过inputFrameSource输出 InputFrame ,应将inputFrameSource连接到 InputFrameSink 上进行使用。 bufferCapacity表示 InputFrame 缓冲的容量,如果有超过此数量的 InputFrame 从该设备中输出并且没有被释放,该设备将不再输出新的 InputFrame ,直到之前的 InputFrame 被释放。这可能造成画面卡住等问题。
- AttitudeSensor
AttitudeSensor调用了系统提供的姿态传感器,输出 AttitudeSensorResult 。 当不再需要该设备时,可以调用close对其进行关闭。close之后不应继续使用。 不建议同时打开多次,可能会无法使用或精度下降。
- AttitudeSensorResult
姿态传感器读数。 x轴正方向从设备中心指向屏幕右部。 y轴正方向从设备中心指向屏幕上部。 z轴正方向从设备中心垂直屏幕向外。 设备绕轴(x, y, z)旋转了一个角度θ。 单位旋转四元数为(cos(θ/2), x*sin(θ/2), y*sin(θ/2), z*sin(θ/2))。 (v0, v1, v2, v3) = (cos(θ/2), x*sin(θ/2), y*sin(θ/2), z*sin(θ/2))。 参考坐标系被定义为一组有向的标准正交基,其中
Z指向天空,并与地面平行。 (X, Y, Z)构成右手系。timestamp单位为秒。
- AttitudeSensorResultSink
姿态传感器结果输入端口。 用于暴露一个组件的输入端口。 本类的所有成员都是线程安全的。
- AttitudeSensorResultSource
姿态传感器结果输出端口。 用于暴露一个组件的输出端口。 本类的所有成员都是线程安全的。
- BlockInfo
稠密重建得到的模型使用三角网格表示,称为mesh。由于mesh会进行频繁的更新,为了保证效率,整个重建模型的mesh被分割成了非常多的mesh block。一个mesh block由一个边长大概1米的立方体组成,其中有vertex和index等元素。 BlockInfo用来描述一个mesh block的内容。其中(x,y,z)是mesh block的索引,将(x,y,z)乘上每个mesh block的物理尺寸可以获得这个mesh block的原点在世界坐标系中的坐标。可以通过mesh block在世界中的位置对需要显示的部分进行提前过滤,以节省渲染需要的时间。
- BlockPriorResult
先验地图信息。 blockIds为地图id。 mode为先验信息被系统使用的模式,可以为soft或hard。参考BlockPriorMode。
- Buffer
Buffer 存储了原始字节数组,可以用来访问图像数据。 在Java API中可以从 Image 中获取buffer然后copy数据到Java字节数组。 在EasyAR Sense的所有版本中,你都可以访问图像数据。参考 Image 。
- BufferDictionary
一个从文件路径到 Buffer 的映射。用于表示多个放在内存中的文件。
- BufferPool
BufferPool 实现了一个内存池,可用于自定义摄像头接入等需要反复分配相同大小内存的功能,降低内存分配耗时。
- CalibrationDownloader
CalibrationDownloader用于下载更新MotionTracker中使用的标定参数。下载后需要重新创建MotionTracker才会起作用。
- CallbackScheduler
回调调度器。 有两个子类 DelayedCallbackScheduler 和 ImmediateCallbackScheduler 。 其中 DelayedCallbackScheduler 用于将回调推迟到手动调用的时候调用,可用于单线程环境下(如各种UI环境)。 ImmediateCallbackScheduler 用于将回调立即执行,可用于多线程环境下(如服务器或后台服务)。
- CameraDevice
CameraDevice实现了一个camera设备,输出 InputFrame (包含图像、摄像机参数和时间戳)。在Windows、Mac、Android和iOS上可用。 打开之后,可以调用start/stop来开始和停止采集数据。start/stop不会影响之前所设置的camera参数。 当不再需要该设备时,可以调用close对其进行关闭。close之后不应继续使用。 CameraDevice通过inputFrameSource输出 InputFrame ,应将inputFrameSource连接到 InputFrameSink 上进行使用。 bufferCapacity表示 InputFrame 缓冲的容量,如果有超过此数量的 InputFrame 从该设备中输出并且没有被释放,该设备将不再输出新的 InputFrame ,直到之前的 InputFrame 被释放。这可能造成画面卡住等问题。 Android使用时需要在AndroidManifest.xml中加入android.permission.CAMERA权限声明。 iOS使用时需要在Info.plist中加入NSCameraUsageDescription权限声明。
- CameraDeviceSelector
用于在Android上选择Camera API(camera1或camera2)。camera1兼容性较好,但缺乏一些必要的信息,如时间戳。camera2在部分设备上存在兼容性问题。 不同选项会根据用途选择camera1或camera2。
- CameraParameters
camera参数,包括图像大小、焦距、主点、camera类型和camera相对设备自然方向的旋转角度。
- CloudLocalizer
CloudLocalizer实现了云定位功能。
- CloudLocalizerBlockInstance
CloudLocalizer定位到的block的实例。
- CloudRecognizer
CloudRecognizer实现了云识别功能。云识别功能需要在云端创建云识别图库才能使用,请参考EasyAR CRS文档。 当不再需要该组件时,可以调用close对其进行关闭。close之后不应继续使用。 在使用CloudRecognizer之前,需要设置并准备好一个 ImageTracker 。任何返回的target在被track之前都应使用 loadTarget 手动加载进入 ImageTracker 。加载之后,target的识别和跟踪即和本地target的使用相同。在一个target被识别到之后,你可以从回调中获取到,然后你应该使用target uid来区分不同的target。target runtimeID是动态生成的,不适用于作为云识别情况下的target的唯一区分。
- DelayedCallbackScheduler
延时回调调度器。 用于将回调推迟到手动调用的时候调用,可用于单线程环境下(如各种UI环境)。 本类的所有成员都是线程安全的。
- DenseSpatialMap
DenseSpatialMap用来对环境进行精确的三维稠密重建,其重建的模型用三角网格表示,称为mesh。 DenseSpatialMap占用1个camera的buffer。
- EventDumpRecorder
事件转储录制器。 用于将一些关键诊断信息保存到EED文件中。 本类的所有成员都是线程安全的。
- FeedbackFrame
反馈帧。 包含一个输入帧和一个历史输出帧,用于 ImageTracker 等反馈式同步处理组件。
- FeedbackFrameFork
反馈帧分流器。 用于将一个反馈帧并行传输到多个组件中。 本类的所有成员都是线程安全的。
- FeedbackFrameSink
反馈帧输入端口。 用于暴露一个组件的输入端口。 本类的所有成员都是线程安全的。
- FeedbackFrameSource
反馈帧输出端口。 用于暴露一个组件的输出端口。 本类的所有成员都是线程安全的。
- FrameFilterResult
FrameFilterResult是所有使用同步算法组件结果的基类。
- Gyroscope
Gyroscope调用了系统提供的陀螺仪,输出 GyroscopeResult 。 当不再需要该设备时,可以调用close对其进行关闭。close之后不应继续使用。 不建议同时打开多次,可能会无法使用或精度下降。
- GyroscopeResult
陀螺仪读数。 x轴正方向从设备中心指向屏幕右部。 y轴正方向从设备中心指向屏幕上部。 z轴正方向从设备中心垂直屏幕向外。 x, y, z表示绕对应的轴旋转的角速度,单位为弧度/秒。 从坐标轴正方向上某处看向设备时的逆时针方向为旋转正方向。 timestamp单位为秒。
- GyroscopeResultSink
陀螺仪结果输入端口。 用于暴露一个组件的输入端口。 本类的所有成员都是线程安全的。
- GyroscopeResultSource
陀螺仪结果输出端口。 用于暴露一个组件的输出端口。 本类的所有成员都是线程安全的。
- Image
Image存储了图像数据,用来表示内存中的图像。 Image以字节数组的方式提供了对原始数据的访问,同时也提供了访问width/height等信息的接口。 在EasyAR Sense的所有版本中,你都可以访问图像数据。 在iOS中可以这样访问
#import <easyar/buffer.oc.h> #import <easyar/image.oc.h> easyar_OutputFrame * outputFrame = [outputFrameBuffer peek]; if (outputFrame != nil) { easyar_Image * i = [[outputFrame inputFrame] image]; easyar_Buffer * b = [i buffer]; char * bytes = calloc([b size], 1); memcpy(bytes, [b data], [b size]); // use bytes here free(bytes); }在Android里面,
import cn.easyar.*; OutputFrame outputFrame = outputFrameBuffer.peek(); if (outputFrame != null) { InputFrame inputFrame = outputFrame.inputFrame(); Image i = inputFrame.image(); Buffer b = i.buffer(); byte[] bytes = new byte[b.size()]; b.copyToByteArray(0, bytes, 0, bytes.length); // use bytes here b.dispose(); i.dispose(); inputFrame.dispose(); outputFrame.dispose(); }
- ImageHelper
图像帮助类。
- ImageTarget
ImageTarget表示平面图像的target,它可以被 ImageTracker 所跟踪。 ImageTarget内的数值在可以被读取之前需要首先通过create...等方法填入。然后再通过 loadTarget 成功载入 ImageTracker 之后可以被 ImageTracker 检测和跟踪。
- ImageTargetParameters
ImageTargetParameters表示创建 ImageTarget 所需要的参数。
- ImageTracker
ImageTracker实现了平面卡片的检测和跟踪。 ImageTracker占用(1 + SimultaneousNum)个camera的buffer。应使用camera的setBufferCapacity设置不少于所有组件占用的camera的buffer数量。 创建之后,可以调用start/stop来开始和停止运行,start/stop是非常轻量的调用。 当不再需要该组件时,可以调用close对其进行关闭。close之后不应继续使用。 ImageTracker通过feedbackFrameSink输入 FeedbackFrame ,应将 FeedbackFrameSource 连接到feedbackFrameSink上进行使用。 在 Target 可以被ImageTracker跟踪之前,你需要通过loadTarget/unloadTarget将它载入。可以通过传入接口的回调来获取load/unload的结果。
- ImmediateCallbackScheduler
立即回调调度器。 用于将回调立即执行,可用于多线程环境下(如服务器或后台服务)。 本类的所有成员都是线程安全的。
- InertialCameraDevice
InertialCameraDevice实现了一个基于运动惯性的camera设备,输出 CameraTransformType 为FiveDofRotXZ的 InputFrame (包含图像、摄像机参数、时间戳、位姿转换矩阵和跟踪状态)。 创建之后,可以调用start/stop来开始和停止采集视频流数据。 当不再需要该设备时,可以调用close对其进行关闭。close之后不应继续使用。 InertialCameraDevice通过inputFrameSource输出 InputFrame ,应将inputFrameSource连接到 InputFrameSink 上进行使用。 bufferCapacity表示 InputFrame 缓冲的容量,如果有超过此数量的 InputFrame 从该设备中输出并且没有被释放,该设备将不再输出新的 InputFrame ,直到之前的 InputFrame 被释放。这可能造成画面卡住等问题。
- InputFrame
输入帧。 包含图像、camera参数、时间戳、相机相对于世界坐标系的变换和跟踪状态。 其中,camera参数、时间戳、相机相对于世界坐标系的变换和跟踪状态均为可选,但特定的算法组件会对输入有特定的要求。
- InputFrameFork
输入帧分流器。 用于将一个输入帧并行传输到多个组件中。 本类的所有成员都是线程安全的。
- InputFramePlayer
输入帧播放器。 有一个输入帧输出端口,用于从EIF文件将输入帧取出。 本类的所有成员都是线程安全的。
- InputFrameRecorder
输入帧录制器。 有一个输入帧输入端口和一个输入帧输出端口,用于将经过的输入帧保存到EIF文件中。 本类的所有成员都是线程安全的。
- InputFrameSink
输入帧输入端口。 用于暴露一个组件的输入端口。 本类的所有成员都是线程安全的。
- InputFrameSource
输入帧输出端口。 用于暴露一个组件的输出端口。 本类的所有成员都是线程安全的。
- InputFrameThrottler
输入帧节流器。 有一个输入帧输入端口和输入帧输出端口,用于在算法组件未完成处理上一帧数据的时候阻止新的输入帧进入算法组件。 InputFrameThrottler占用1个camera的buffer。应使用camera的setBufferCapacity设置不少于所有组件占用的camera的buffer数量。 本类的所有成员都是线程安全的。 需要注意其signalInput的连接和断开不应该在有数据流入的同时进行,否则可能会陷入不能输出的状态。(推荐在Camera启动之前完成数据流连接。)
- InputFrameToFeedbackFrameAdapter
输入帧到反馈帧适配器。 有一个输入帧输入端口、一个历史输出帧输入端口和一个反馈帧输出端口,用于将输入帧和历史输出帧组合成反馈帧,传递给要求输入反馈帧的算法组件,例如 ImageTracker 。 每次输入帧输入时,会连带上一次输入的历史输出帧合成反馈帧。如果没有输入过历史输出帧,则反馈帧中的历史输出帧为空。 InputFrameToFeedbackFrameAdapter占用1个camera的buffer。应使用camera的setBufferCapacity设置不少于所有组件占用的camera的buffer数量。 本类的所有成员都是线程安全的。
- InputFrameToOutputFrameAdapter
输入帧到输出帧适配器。 有一个输入帧输入端口和一个输出帧输出端口,用于将输入帧包装成输出帧,实现不接入算法组件,直接进行渲染的功能。 本类的所有成员都是线程安全的。
- JniUtility
JNI工具类。 用于在Unity中对Java的数组和ByteBuffer进行包装。 不支持iOS平台。
- LocationResult
位置读数。 latitude, longitude单位为度。 altitude单位为米。 horizontalAccuracy为水平方向精度,单位为米。 verticalAccuracy为重力方向精度,单位为米。
- LocationResultSink
位置结果输入端口。 用于暴露一个组件的输入端口。 本类的所有成员都是线程安全的。
- LocationResultSource
位置结果输出端口。 用于暴露一个组件的输出端口。 本类的所有成员都是线程安全的。
- Log
日志类。 用于输出日志或设置自定义日志输出函数。
- Magnetometer
Magnetometer调用了系统提供的磁力计,输出 MagnetometerResult 。 当不再需要该设备时,可以调用close对其进行关闭。close之后不应继续使用。 不建议同时打开多次,可能会无法使用或精度下降。
- MagnetometerResult
磁力计读数。 x轴正方向从设备中心指向屏幕右部。 y轴正方向从设备中心指向屏幕上部。 z轴正方向从设备中心垂直屏幕向外。 x, y, z单位为uT(微特斯拉)。 timestamp单位为秒。
- MagnetometerResultSink
磁力计结果输入端口。 用于暴露一个组件的输入端口。 本类的所有成员都是线程安全的。
- MagnetometerResultSource
磁力计结果输出端口。 用于暴露一个组件的输出端口。 本类的所有成员都是线程安全的。
- Matrix33F
三阶方阵。数据的排列方式为row-major。
- Matrix44F
四阶方阵。数据的排列方式为row-major。
- MegaLandmarkFilter
MegaLandmarkFilter实现了VPS云定位过滤功能。
- MegaTracker
提供云定位功能。 MegaTracker占用1个camera的buffer。
- MegaTrackerBlockInstance
MegaTracker定位到的block的实例。
- MegaTrackerLocalizationResponse
MegaTracker定位请求的响应。
- MegaTrackerResult
MegaTracker的输出,会以OutputFrame的频率更新。
- MotionInputData
运动输入数据。 包含、时间戳、相对于世界坐标系的变换和跟踪状态。
- MotionTrackerCameraDevice
MotionTrackerCameraDevice实现了一个真实尺度6DOF运动追踪的camera设备,输出 InputFrame (包含图像、摄像机参数、时间戳、6DOF位置信息和跟踪状态)。 创建之后,可以调用start/stop来开始和停止数据流。 当不再需要该设备时,可以调用close对其进行关闭。close之后不应继续使用。 MotionTrackerCameraDevice通过inputFrameSource输出 InputFrame ,应将inputFrameSource连接到 InputFrameSink 上进行使用。
- ObjectTarget
ObjectTarget表示3D object target,它可以被 ObjectTracker 所跟踪。 ObjectTarget的大小由
obj文件决定。可以通过修改scale达到修改size的目的。scale默认为1。 ObjectTarget通过 loadTarget 成功载入 ObjectTracker 之后可以被 ObjectTracker 检测和跟踪。
- ObjectTargetParameters
ObjectTargetParameters表示创建 ObjectTarget 所需要的参数。
- ObjectTracker
ObjectTracker实现了3D object target的检测和跟踪。 ObjectTracker占用(1 + SimultaneousNum)个camera的buffer。应使用camera的setBufferCapacity设置不少于所有组件占用的camera的buffer数量。 创建之后,可以调用start/stop来开始和停止运行,start/stop是非常轻量的调用。 当不再需要该组件时,可以调用close对其进行关闭。close之后不应继续使用。 ObjectTracker通过feedbackFrameSink输入 FeedbackFrame ,应将 FeedbackFrameSource 连接到feedbackFrameSink上进行使用。 在 Target 可以被ObjectTracker跟踪之前,你需要通过loadTarget/unloadTarget将它载入。可以通过传入接口的回调来获取load/unload的结果。
- OutputFrame
输出帧。 包含输入帧和同步处理组件的输出结果。
- OutputFrameBuffer
输出帧缓存。 有一个输出帧输入端口和输出帧获取函数,用于将输出帧的获取方式从异步转化为同步轮询,适合逐帧渲染。 OutputFrameBuffer占用1个camera的buffer。应使用camera的setBufferCapacity设置不少于所有组件占用的camera的buffer数量。 本类的所有成员都是线程安全的。
- OutputFrameFork
输出帧分流器。 用于将一个输出帧并行传输到多个组件中。 本类的所有成员都是线程安全的。
- OutputFrameJoin
输出帧合流器。 用于将多个组件的输出帧合并成一个输出帧。 本类的所有成员都是线程安全的。 需要注意其多个输入的连接和断开不应该在有数据流入的同时进行,否则可能会陷入不能输出的状态。(推荐在Camera启动之前完成数据流连接。)
- OutputFrameSink
输出帧输入端口。 用于暴露一个组件的输入端口。 本类的所有成员都是线程安全的。
- OutputFrameSource
输出帧输出端口。 用于暴露一个组件的输出端口。 本类的所有成员都是线程安全的。
- ProximityLocationResult
邻近位置读数。 x, y, z单位为米。原点为地图块原点。y向上。 accuracy单位为米。 timestamp, validTime单位为秒。 is2d表示是否不使用y。
- ProximityLocationResultSink
邻近位置结果输入端口。 用于暴露一个组件的输入端口。 本类的所有成员都是线程安全的。
- ProximityLocationResultSource
邻近位置结果输出端口。 用于暴露一个组件的输出端口。 本类的所有成员都是线程安全的。
- Recorder
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权限声明。
- RecorderConfiguration
RecorderConfiguration为 Recorder 的启动配置。
- SignalSink
信号输入端口。 用于暴露一个组件的输入端口。 本类的所有成员都是线程安全的。
- SignalSource
信号输出端口。 用于暴露一个组件的输出端口。 本类的所有成员都是线程安全的。
- SparseSpatialMap
提供SparseSpatialMap系统主要的功能,地图生成和存储、地图加载和定位,同时可以获取点云,平面等环境信息并进行hit Test。 SparseSpatialMap占用2个camera的buffer。应使用camera的setBufferCapacity设置不少于所有组件占用的camera的buffer数量。
- SparseSpatialMapConfig
用于配置稀疏建图中的定位策略。
- SparseSpatialMapManager
SparseSpatialMap管理类,用于管理SparseSpatialMap的分享功能。
- SparseSpatialMapResult
获取稀疏建图与定位系统的输出,会以OutputFrame的频率更新。
- SurfaceTracker
SurfaceTracker实现了对环境表面的跟踪。 SurfaceTracker占用1个camera的buffer。应使用camera的setBufferCapacity设置不少于所有组件占用的camera的buffer数量。 创建之后,可以调用start/stop来开始和停止运行,start/stop是非常轻量的调用。 当不再需要该组件时,可以调用close对其进行关闭。close之后不应继续使用。 SurfaceTracker通过inputFrameSink输入 InputFrame ,应将 InputFrameSource 连接到inputFrameSink上进行使用。
- Target
Target是EasyAR里面所有可以被 ImageTracker 或其它算法跟踪的目标的基类。
- TargetInstance
TargetInstance是被tracker跟踪到的target。 TargetInstance包括被跟踪上的原始 Target 以及这个 Target 当前的状态和姿态。
- TargetTrackerResult
TargetTrackerResult是 ImageTrackerResult 和 ObjectTrackerResult 的基类。
- TextureId
TextureId封装图形API中的纹理对象。 其中,OpenGL/OpenGLES应使用getInt和fromInt,Direct3D应使用getPointer和fromPointer。
- ThreeDofCameraDevice
ThreeDofCameraDevice实现了一个three dof的camera设备,输出 CameraTransformType 为ThreeDofRotOnly的 InputFrame (包含图像、摄像机参数、时间戳、位姿转换矩阵和跟踪状态)。 创建之后,可以调用start/stop来开始和停止采集视频流数据。 当不再需要该设备时,可以调用close对其进行关闭。close之后不应继续使用。 ThreeDofCameraDevice通过inputFrameSource输出 InputFrame ,应将inputFrameSource连接到 InputFrameSink 上进行使用。 bufferCapacity表示 InputFrame 缓冲的容量,如果有超过此数量的 InputFrame 从该设备中输出并且没有被释放,该设备将不再输出新的 InputFrame ,直到之前的 InputFrame 被释放。这可能造成画面卡住等问题。
- Vec2F
二维float向量。
- Vec2I
二维int向量。
- Vec3D
三维double向量。
- Vec3F
三维float向量。
- Vec4F
四维float向量。
- Vec4I
四维int向量。
- VideoInputFramePlayer
输入帧播放器。 有一个输入帧输出端口,用于从EIF MKV文件将输入帧取出。 本类的所有成员都是线程安全的。
- VideoInputFrameRecorder
输入帧录制器。 有一个输入帧输入端口和一个输入帧输出端口,用于将经过的输入帧保存到EIF MKV文件中。 本类的所有成员都是线程安全的。
- VideoPlayer
VideoPlayer是视频播放类。 EasyAR支持普通的视频、透明视频和流媒体播放。视频内容会被渲染到传入setRenderTexture的texture上。 该类只支持OpenGLES 3.0的texture。 由于依赖于OpenGLES,本类的所有函数(包括析构函数)都必须在单个包含OpenGLES上下文的线程中调用。 当前版本要求宽高均为16的倍数。 支持的视频文件格式 Windows: Media Foundation兼容格式,安装额外的解码器可以支持更多格式,请参考 Supported Media Formats in Media Foundation ,不支持DirectShow Mac: 不支持 Android: 系统支持的格式,请参考 Supported media formats 。 iOS: 系统支持的格式,当前没有有效的参考文档
- VisionOSARKitCameraDevice
VisionOSARKitCameraDevice实现了一个基于VisionOS ARKit的camera设备,输出 InputFrame (包含图像、摄像机参数、时间戳、6DOF位置信息和跟踪状态)。 创建之后,可以调用start/stop来开始和停止采集视频流数据。 当不再需要该设备时,可以调用close对其进行关闭。close之后不应继续使用。 VisionOSARKitCameraDevice通过inputFrameSource输出 InputFrame ,应将inputFrameSource连接到 InputFrameSink 上进行使用。 bufferCapacity表示 InputFrame 缓冲的容量,如果有超过此数量的 InputFrame 从该设备中输出并且没有被释放,该设备将不再输出新的 InputFrame ,直到之前的 InputFrame 被释放。这可能造成画面卡住等问题。
- XREALCameraDevice
XREALCameraDevice实现了一个基于XREAL Enterprise Native SDK Plugin的camera设备,输出 InputFrame (不可获取图像、摄像机参数、时间戳、6DOF位置信息和跟踪状态)。 创建之后,可以调用start/stop来开始和停止采集视频流数据。需要确保在isDeviceSupported返回true之后才能调用start。 当不再需要该设备时,可以调用close对其进行关闭。close之后不应继续使用。 XREALCameraDevice通过inputFrameSource输出 InputFrame ,应将inputFrameSource连接到 InputFrameSink 上进行使用。 bufferCapacity表示 InputFrame 缓冲的容量,如果有超过此数量的 InputFrame 从该设备中输出并且没有被释放,该设备将不再输出新的 InputFrame ,直到之前的 InputFrame 被释放。这可能造成画面卡住等问题。
枚举
- BlockPriorMode
先验地图信息工作模式
- CameraDeviceType
相机设备类型。
- CameraModelType
相机模型类型。
- CameraTransformType
相机变换类型。
- CloudLocalizerStatus
云定位状态。
- MegaApiType
MEGA API类型。
- MotionTrackingStatus
描述设备运动跟踪的质量。
- PixelFormat
PixelFormat表示图像像素格式。所有格式的像素方向均为从左到右,从上到下的。
- StorageType
StorageType表示图像、json文件、视频或其它文件的存放位置。 StorageType指定了文件存放的根目录,你可以在所有相关接口中使用相对于这个根目录的相对路径。