ARSession
ARSessio的屬性及其實例方法
//ARSession類在設(shè)備上配置并運行不同的增強現(xiàn)實技術(shù)。
API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)
@interface ARSession : NSObject
//用于接收ARSession更新的代表贸弥。代理屬性
@property (nonatomic, weak) id <ARSessionDelegate> delegate;
/**
執(zhí)行委托調(diào)用的調(diào)度隊列脱拼。
@discussion如果沒有提供或沒有馏臭,將在主隊列上執(zhí)行委托呼叫扁凛。
*/
@property (nonatomic, strong, nullable) dispatch_queue_t delegateQueue;
/**
會話的當前幀躺屁。
*/
@property (nonatomic, copy, nullable, readonly) ARFrame *currentFrame;
//會話正在使用的ARConfiguration树姨。
@property (nonatomic, copy, nullable, readonly) ARConfiguration *configuration;
/**
使用提供的配置運行會話。
@discussion在已經(jīng)開始的會話上調(diào)用運行
過渡到立即使用新的配置闺兢。
@param配置要使用的配置茂缚。
*/
- (void)runWithConfiguration:(ARConfiguration *)configuration NS_SWIFT_UNAVAILABLE("Use run(_:options:) instead");
/**
使用提供的配置和選項運行會話。
@discussion在已經(jīng)開始的會話上調(diào)用運行過渡到立即使用新的配置屋谭。選項可用于在轉(zhuǎn)換配置時更改默認行為脚囊。
@param配置要使用的配置。
@param選項要使用的運行選項桐磁。
*/
- (void)runWithConfiguration:(ARConfiguration *)configuration options:(ARSessionRunOptions)options NS_SWIFT_NAME(run(_:options:));
/**
暫停會話
@discussion一旦暫停悔耘,將不會收到更多的更新
會話直到再次調(diào)用。
*/
- (void)pause;
/**
在會話中添加一個錨點所意。
@discussion錨將被添加到下一幀更新中淮逊。
@param anchor要添加的錨點。
*/
- (void)addAnchor:(ARAnchor *)anchor NS_SWIFT_NAME(add(anchor:));
/**
從會話中刪除一個錨點扶踊。
@discussion錨將從后續(xù)的幀更新中刪除。
@param anchor要移除的錨點郎任。
*/
- (void)removeAnchor:(ARAnchor *)anchor NS_SWIFT_NAME(remove(anchor:));
ARSession觀察者協(xié)議方法
/**
會話失敗時調(diào)用秧耗。
@discussion失敗時,會話將暫停舶治。
@param session失敗的會話分井。
@param錯誤正在報告的錯誤(請參閱ARError.h)
*/
- (void)session:(ARSession *)session didFailWithError:(NSError *)error;
/**
當相機的跟蹤狀態(tài)發(fā)生變化時,會調(diào)用此功能霉猛。
@param session正在運行的會話尺锚。
@param相機更改跟蹤狀態(tài)的相機。
*/
- (void)session:(ARSession *)session cameraDidChangeTrackingState:(ARCamera *)camera;
/**
當會話中斷時調(diào)用此方法惜浅。
@discussion會話將被中斷瘫辩,不再能跟蹤什么時候
它無法接收所需的傳感器數(shù)據(jù)。 當視頻捕獲中斷時坛悉,
例如當應用程序被發(fā)送到后臺或當有的時候
多個前臺應用程序(請參閱AVCaptureSessionInterruptReason)伐厌。
在中斷結(jié)束之前,不會傳送額外的幀更新裸影。
@param session中斷的會話挣轨。
*/
- (void)sessionWasInterrupted:(ARSession *)session;
/**
當會話中斷結(jié)束時調(diào)用。
@discussion會話將從最后一次已知的狀態(tài)繼續(xù)運行一次
中斷已經(jīng)結(jié)束轩猩。 如果設(shè)備移動卷扮,錨點將不對齊荡澎。
為避免這種情況,一些應用程序可能想要重置跟蹤(請參閱ARSessionRunOptions)晤锹。
@param session中斷的會話衔瓮。
*/
- (void)sessionInterruptionEnded:(ARSession *)session;
/**
當會話輸出新的音頻采樣緩沖區(qū)時,這被稱為抖甘。
@param session正在運行的會話热鞍。
@param audioSampleBuffer捕獲的音頻采樣緩沖區(qū)。
*/
- (void)session:(ARSession *)session didOutputAudioSampleBuffer:(CMSampleBufferRef)audioSampleBuffer;
@end
ARSessionDelegate 代理方法
/**
當新的幀被更新時調(diào)用衔彻。
@param session正在運行的會話薇宠。
@param frame已更新的框架。
*/
- (void)session:(ARSession *)session didUpdateFrame:(ARFrame *)frame;
/**
當新的錨點被添加到會話時艰额,這被稱為澄港。
@param session正在運行的會話。
@param anchors一個添加的錨的數(shù)組柄沮。
*/
- (void)session:(ARSession *)session didAddAnchors:(NSArray<ARAnchor*>*)anchors;
/**
當錨更新時調(diào)用回梧。
@param session正在運行的會話。
@param anchors一組更新的錨點祖搓。
*/
- (void)session:(ARSession *)session didUpdateAnchors:(NSArray<ARAnchor*>*)anchors;
/**
當從會話中刪除錨時狱意,會調(diào)用此方法。
@param session正在運行的會話拯欧。
@param anchors已刪除的錨點的數(shù)組详囤。
*/
- (void)session:(ARSession *)session didRemoveAnchors:(NSArray<ARAnchor*>*)anchors;
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者