1、关于AR方面可以支持的技术能力,以该文档为准。
2、如您有疑问,官方可以支持技术答疑,提问时请带上具体问题、详细代码及使用场景。
3、对于AR开放能力,我们会不定期在钉钉群【互动联盟入驻&技术答疑】进行技术培训,欢迎关注!
4、如果您有更多对于AR能力的需求,可以联系 @无疆 @悠歌 反馈。
Tida版本:3.2.137
支持版本:手机淘宝6.8.0以上,手机天猫6.1.0以上
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 入参: 在猫客下入参只需一个空对象{} 在手淘下需要传入 { "isModelTracking" : true } example: let configObject = {}; if (appName === 'taobao' ){ configObject = { "isModelTracking" : true } } Tida.AR.scanOpenCamera(configObject, function() { //todo }) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 入参 tbMarkerRes(这个入参是手淘用的,使用请联系子泰,汀澜) url:类型string,生成的zip包,@子泰,手动生成 md5:string,@子泰,手动生成 markers:array,@子泰,手动生成 markers(这个入参是猫客用的) markerIconUrl:识别图片,jpg格式,长边尽量不超过 1280 。 id:识别成功之后返回的数据里面会带有这个 id,表明当前识别到的是哪一个,这个值自己填,返回的时候自己能看明白就行。 filter:暂时没有用到 返回success 错误码: - 1 : id为空,或者手淘tbMarkerRes空 example: Tida.AR.initMarkerTracker({ tbMarkerRes: { 'md5' : '73013c46df25def9051cf8c1c6774613' }, 'markers' :[{ 'id' : '20' },{ 'id' : '50' },{ 'id' : '100' }] }, markers: [ { id: "logo1" , filter: "" }, { id: "logo2" , filter: "" }, { id: "logo3" , filter: "" } ] }, function(result) { //todo something }) |
1 2 3 4 5 | 入参:{} example: Tida.AR.startMarkerTracking({}, function(result) { console.log( "AR.startMarkerTracking success: " , result); }) |
1 2 3 4 5 | 入参:{} example: Tida.AR.stopMarkerTracking({}, function(result) { console.log( "AR.stopMarkerTracking success: " , result); }) |
1 2 3 4 5 | 入参:{} example: Tida.AR.destroyMarkerTracker({}, function(result) { console.log( "AR.destroyMarkerTracker success: " , result); }) |
这是一个监听事件,前端可以从这个监听事件中获取渲染需要用的数据
1 2 3 4 5 6 7 8 9 10 11 12 13 | 参数返回介绍: state: 追踪状态, int 类型。 0 代表未开始track; 1 代表未track到目标; 2 代表track到目标。 viewport: 3D视窗,JsonArray( float [ 4 ])类型,分别为left、top、right、bottom。 projectionMatrix: 投影矩阵,JsonArray( float [ 16 ])类型,列矩阵顺序。 viewMatrix: 观察矩阵,JsonArray( float [ 16 ])类型,列矩阵顺序。 id:tracking到的id(参考initMarkerTracker方法) example: document.addEventListener( 'AR.updateMarkerTrackingState' , function(result){ //此处处理result中返回的数据 }) |
客户端在对相机帧识别计算的过程中,如果跟踪成功,那么会在将结果广播给web端后,渲染当前相机帧,同时停止后续相机的渲染,等待web端消费完结果通知。Web端在收到跟踪结果事件后,如果方向跟踪成功,那么Web端需要在消费完本次跟踪结果后调用AR.afterWebMarkerDrawn,通知客户端可以发送最新一帧的跟踪结果了,同时也可以渲染最新帧相机图像。
这个方法请结合AR.updateMarkerTrackingState的监听一起使用,在AR.updateMarkerTrackingState事件被监听到后,处理完返回的数据,请调用Tida.AR.afterWebMarkerDrawn()。这时客户端接受到afterWebMarkerDrawn事件,会触发AR.updateMarkerTrackingState然后下发下一帧数据。
1 2 3 4 5 | example: document.addEventListener( 'AR.updateMarkerTrackingState' , function(result){ //此处处理result中返回的数据 Tida.AR.afterWebMarkerDrawn(); }) |