简体中文
主题
简体中文
主题
图像 AR 合辑对应 image2d-tracking 类型。
它和单个图像 AR 场景的最大区别在于:
ready,拿到 collectionInfo 和 CollectionApisceneReadytracked / lostTracklostTrack时,合辑会再次开启云识别,用来寻找要打开的新场景图像 AR 合辑的典型流程通常是:
ready,拿到合辑信息sceneReady,拿到当前场景信息和对应 SceneApitrackedlostTrack。合辑再次开启云识别,用来寻找下一个要打开的新场景如果你的宿主页面支持“切换到另一个场景”,则后续还会再次触发:
sceneDestroysceneReady图像 AR 合辑最常用的事件通常有两层:
readysceneReadysceneDestroydownloadAssetProgressloadSceneEndsceneStarttrackedlostTrack可以简单理解为:
ready 负责“合辑已准备好”sceneReady 负责“当前具体场景已准备好”tracked / lostTrack 负责“当前图像 AR 场景的识别状态”let collectionApi = null;
let sceneApi = null;
iframe.addEventListener('ready', (event) => {
collectionApi = event.detail.api;
console.log('collection ready', event.detail.collectionInfo);
});
iframe.addEventListener('sceneReady', (event) => {
sceneApi = event.detail.api;
console.log('scene ready', event.detail.sceneInfo);
});
iframe.addEventListener('tracked', () => {
hideScanHint();
});
iframe.addEventListener('lostTrack', () => {
showScanHint();
});图像 AR 合辑里实际上存在两层“扫描”语义:
tracked因此图像 AR 合辑仍然会在当前场景需要识别时展示默认扫描 UI。
如果你使用:
hideScan: true则表示你要在宿主层自行承担扫描引导职责。
比较常见的做法是:
ready 或 loadSceneEnd 后展示“请扫描目标图”提示tracked 时隐藏提示lostTrack 时重新展示提示lostTrack 之后,合辑默认还会重新开启云识别,用来寻找下一张可切换到的新场景如果合辑中的不同场景对应不同识别图,那么宿主层还应根据当前 sceneInfo 更新提示内容,而不是一直复用同一套文案。
相比单独打开一个图像 AR 场景,图像 AR 合辑更适合:
同时也要额外注意:
ready 就认为当前场景信息固定不变SceneApi 应在每次 sceneReady 后更新lostTrack 不只是“这个场景暂时没识别到”,它还可能触发合辑重新进入“寻找下一个场景”的流程图像 AR 合辑常见搭配包括:
如果你要控制当前具体场景中的模型、图片、视频等内容,应在 sceneReady 中拿到 SceneApi 再操作,而不是直接在 CollectionApi 上调用。
ready 中拿到 collectionInfo.sceneList,建立“这个合辑里有哪些场景”的心智模型。sceneReady 中更新当前场景信息和 SceneApi,不要复用上一个场景的对象句柄。lostTrack 后通常也会再次开启,目的都是为了找到要打开的新场景。tracked / lostTrack 做明确的 UI 反馈,并区分“当前场景识别状态”和“合辑正在寻找下一个场景”。