iOS开发——ARKit之ARSession头文件

ARSession

ARSessio的属性及其实例方法

//ARSession类在设备上配置并运行不同的增强现实技术。
API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)
@interface ARSession : NSObject

 //用于接收ARSession更新的代表。代理属性
@property (nonatomic, weak) id  delegate;

/**
 执行委托调用的调度队列。
  @discussion如果没有提供或没有,将在主队列上执行委托呼叫。
 */
@property (nonatomic, strong, nullable) dispatch_queue_t delegateQueue;

/**
 会话的当前帧。
 */
@property (nonatomic, copy, nullable, readonly) ARFrame *currentFrame;

 //会话正在使用的ARConfiguration。
@property (nonatomic, copy, nullable, readonly) ARConfiguration *configuration;

/**
 使用提供的配置运行会话。
  @discussion在已经开始的会话上调用运行
  过渡到立即使用新的配置。
  @param配置要使用的配置。
 */
- (void)runWithConfiguration:(ARConfiguration *)configuration NS_SWIFT_UNAVAILABLE("Use run(_:options:) instead");

/**
 使用提供的配置和选项运行会话。
  @discussion在已经开始的会话上调用运行过渡到立即使用新的配置。选项可用于在转换配置时更改默认行为。
  @param配置要使用的配置。
  @param选项要使用的运行选项。
 */
- (void)runWithConfiguration:(ARConfiguration *)configuration options:(ARSessionRunOptions)options NS_SWIFT_NAME(run(_:options:));

/**
 暂停会话
  @discussion一旦暂停,将不会收到更多的更新
  会话直到再次调用。
 */
- (void)pause;

/**
 在会话中添加一个锚点。
  @discussion锚将被添加到下一帧更新中。
  @param anchor要添加的锚点。
 */
- (void)addAnchor:(ARAnchor *)anchor NS_SWIFT_NAME(add(anchor:));

/**
从会话中删除一个锚点。
  @discussion锚将从后续的帧更新中删除。
  @param anchor要移除的锚点。
 */
- (void)removeAnchor:(ARAnchor *)anchor NS_SWIFT_NAME(remove(anchor:));

ARSession观察者协议方法

/**
 会话失败时调用。
  @discussion失败时,会话将暂停。
  @param session失败的会话。
  @param错误正在报告的错误(请参阅ARError.h)
 */
- (void)session:(ARSession *)session didFailWithError:(NSError *)error;

/**
 当相机的跟踪状态发生变化时,会调用此功能。
  @param session正在运行的会话。
  @param相机更改跟踪状态的相机。
 */
- (void)session:(ARSession *)session cameraDidChangeTrackingState:(ARCamera *)camera;

/**
 当会话中断时调用此方法。
  @discussion会话将被中断,不再能跟踪什么时候
  它无法接收所需的传感器数据。 当视频捕获中断时,
  例如当应用程序被发送到后台或当有的时候
  多个前台应用程序(请参阅AVCaptureSessionInterruptReason)。
  在中断结束之前,不会传送额外的帧更新。
  @param session中断的会话。
 */
- (void)sessionWasInterrupted:(ARSession *)session;

/**
 当会话中断结束时调用。
 
  @discussion会话将从最后一次已知的状态继续运行一次
  中断已经结束。 如果设备移动,锚点将不对齐。
  为避免这种情况,一些应用程序可能想要重置跟踪(请参阅ARSessionRunOptions)。
  @param session中断的会话。
 */
- (void)sessionInterruptionEnded:(ARSession *)session;

/**
 当会话输出新的音频采样缓冲区时,这被称为。
  @param session正在运行的会话。
  @param audioSampleBuffer捕获的音频采样缓冲区。
 */
- (void)session:(ARSession *)session didOutputAudioSampleBuffer:(CMSampleBufferRef)audioSampleBuffer;

@end

ARSessionDelegate 代理方法

/**
 当新的帧被更新时调用。
  @param session正在运行的会话。
  @param frame已更新的框架。
 */
- (void)session:(ARSession *)session didUpdateFrame:(ARFrame *)frame;

/**
 当新的锚点被添加到会话时,这被称为。
  @param session正在运行的会话。
  @param anchors一个添加的锚的数组。
 */
- (void)session:(ARSession *)session didAddAnchors:(NSArray*)anchors;

/**
 当锚更新时调用。
  @param session正在运行的会话。
  @param anchors一组更新的锚点。
 */
- (void)session:(ARSession *)session didUpdateAnchors:(NSArray*)anchors;

/**
 当从会话中删除锚时,会调用此方法。
  @param session正在运行的会话。
  @param anchors已删除的锚点的数组。
 */
- (void)session:(ARSession *)session didRemoveAnchors:(NSArray*)anchors;

你可能感兴趣的:(iOS开发——ARKit之ARSession头文件)