Android - 基于EasyAR SDK的AR红包的实现

unity之EasyAR使用 (1) 下载-EasyAR官网 下载完毕,解压后可以看到有一个com.easyar.sense-4.5.0+2500.38660d14.tgz包 注意这个包不要解压 (2) 在Unity中导入com.easyar.sense-4.5.0+2500.38660d14.tgz包这里我用的Unity版本是2019.4.32f1打开Package Manager面板 (3) 导入com.easyar.sense-4.5.0+2500.38660d14.tgz包 (4)导入EasyAR自带的Demo场景 (1)打开打 阅读详情


原文:http://blog.youkuaiyun.com/ListerCi/article/details/72953294


一、综述

还记得支付宝在新年里推出的 AR 红包吗?你只要用手机扫一扫“福”字就可以得到一个红包,是不是很神奇很好玩?那么你是否思考过这类程序如何实现呢? 
从原理上来说,手机会将你摄像头中的图案与你手机本地或者是云端的图片进行比对,当相似度达到一个程度的时候,扫描就成功了。听上去很简单,但是这种匹配算法可不是我们能轻易写出来的。那么我们就把目光转向集成了 AR 的 SDK 吧。恰好目前国内有一家 EasyAR,我们就使用他们的 SDK 来实现 AR 红包。 
官网在这里:EasyAR官网

二、官方程序示例解析

1. 下载运行官网的程序

在官网的下载中下载 Android 非 Unity 的示例程序,解压后显示如下: 
EasyAR Android 示例程序.png 
这时打开第一个 HelloAR 应用,目前还不能运行,因为没有你这个应用的 key。 
那我们就去官网申请一个吧,在开发选项中创建应用,根据示例应用的信息来填写就行了,如下所示。 
添加应用.png
将你的 Key 复制到程序的 MainActivity 中,程序就可以运行了,让我们来看下运行时的效果吧~ 
扫描项目 assets 下的任意一张图片,图片中央就会出现一个彩色的立方体。不管手机怎么移动,立方体始终显示在图片正中央,如下如所示。 
运行结果.png
看到这里,你也应该明白怎么实现 AR 红包了,只要在扫描到图像的那一块代码中跳转到红包界面不就得了嘛。闲话不多说,那就让我们先来分析一下源代码吧。

2. 源码分析

GLView

先说源码中的 GLView,它是样例中的自定义控件,继承自 GLSurfaceView。 
GLSurfaceView 是 Android 实现 OpenGL 画图的重要组成部分,它的本质是 Surface,也就是一个平面。想要在这个平面绘制你的图案,那你还需要什么? 
没错,一支画笔!也就是所谓的渲染器,Renderer。当我们为一个 Surface 设置渲染器的时候,我们需要实现渲染器的三个重载方法,如下所示。

// 设置渲染器
this.setRenderer(new GLSurfaceView.Renderer() {

    @Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
        // ......
    }

    @Override
    public void onSurfaceChanged(GL10 gl, int w, int h) {
        // ......
    }

    @Override
    public void onDrawFrame(GL10 gl) {
        try {
            synchronized (helloAR) {
                helloAR.render();
            }
        } catch (Throwable ex) { }
    }
});
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

我们的重点在第三个方法上,onDrawFrame() 每隔很短的时间(几十毫秒)就会调用一次来重绘 Surface 上的图案,我们发现这里面调用了 helloAR 的 render() 方法,这么 HelloAR 应该是整个程序的核心类,那我们就来研究一下它。

HelloAR

在 HelloAR 类中,我们最先看到三个差不多的方法:

private void loadFromImage(ImageTracker tracker, String path)

private void loadFromJsonFile(ImageTracker tracker, String path, String targetname)

private void loadAllFromJsonFile(ImageTracker tracker, String path)
 
  • 1
  • 2
  • 3
  • 4
  • 5

这三个方法功能大同小异,都是用来加载 assets 中的图像文件的,最后一个方法最方便,直接将指定的 json 文件中的所有资源对象加载。我们就看这个方法:

private void loadAllFromJsonFile(ImageTracker tracker, String path) {
    for (ImageTarget target : ImageTarget.setupAll(path, StorageType.Assets)) {
        tracker.loadTarget(target, new FunctorOfVoidFromPointerOfTargetAndBool() {
            @Override
            public void invoke(Target target, boolean status) {
                Log.e("HelloAR", "loadAllFromJsonFile: " +
                        String.format("load target (%b): %s (%d)", status, target.name(), target.runtimeID()));
            }
        });
    }
}
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

这个方法的形参有两个。 
第一个是 ImageTracker,从名字可以看出来这个对象实现了 target 的检测和跟踪,在 Target 可以被 ImageTracker 跟踪之前,你需要通过异步方法 loadTarge 或同步方法 loadTargetBlocked / unloadTargetBlocked 将它载入。 
第二个形参是 json 文件的路径,json 文件中包含了所有要被 ImageTracker 载入的图像的路径和名字。让我们来看一下这个 json 文件:

{
  "images" :
  [
    {
      "image" : "sightplus/argame01.jpg",
      "name" : "argame01"
    },
    {
      "image" : "sightplus/argame02.jpg",
      "name" : "argame02"
    },
    {
      "image" : "sightplus/argame03.jpg",
      "name" : "argame03"
    }
  ]
}
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

简单明了,一共有三张图片的路径和名字。 
再回头来看这个 loadAllFromJsonFile() 方法,进入方法以后,ImageTarget.setupAll 方法直接加载并返回了所有图片资源代表的 ImageTarget 对象,然后通过 for 循环将他们都添加到了 ImageTracker 中。 
了解图片资源是怎么加载的之后,你就可以在 assets 中添加你自己的图片文件并扫描了,不要忘了修改 json 文件哦。

现在再来看 HelloAR 中的 render() 方法,重点是这一段:

for (TargetInstance targetInstance : frame.targetInstances()) {
    int status = targetInstance.status();
    // 判断是否有 ImageTarget 被追踪到
    if (status == TargetStatus.Tracked) {
        Target target = targetInstance.target();
        ImageTarget imagetarget = target instanceof ImageTarget ? (ImageTarget) (target) : null;
        if (imagetarget == null) {
            continue;
        }
        if (box_renderer != null) {
            box_renderer.render(camera.projectionGL(0.2f, 500.f), targetInstance.poseGL(), imagetarget.size());
        }
    }
}
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

首先你要清楚,render() 方法的调用非常频繁,每次调用它都会检测是否已经有 ImageTarget 被追踪到了。这段代码里,status == TargetStatus.Tracked就是用来进行这个判断的。讲到这里你肯定已经很清楚了,如果我们需要在检测到图像后有什么操作的话,在这里执行就行了。

三、自定义功能

1. 跳转到红包 Activity

跳转?跳转有什么好说的,先在构造函数中获取上下文,再 startActivity() 不就行了吗? 
但在这里似乎没那么简单,因为 render() 函数的调用过于频繁,可能系统会一下启动好几个 Activity。那将 Activity 的启动模式调整成 SingleInstance 试一下吧。 
这样的确只会启动一个 Activity,但是对这个 Activity 执行 finish() 操作后,系统又会莫名其妙地再启动一个红包 Activity,这对用户体来说是毁灭性的打击。 
那我们尝试使用标志量来控制一下跳转吧。 
先定义一个常量:

public static int flag = 0;
 
  • 1

然后修改 render() 函数,注释很多,我就不细说了。

for (TargetInstance targetInstance : frame.targetInstances()) {

    int status = targetInstance.status();
    // 如果已经被追踪到
    if (status == TargetStatus.Tracked && Constants.flag < 1) {
        // 每次追踪到目标,标志量都 +1
        Constants.flag ++;
        // 获取目标的信息
        Target target = targetInstance.target();
        ImageTarget imagetarget = target instanceof ImageTarget ? (ImageTarget) (target) : null;
        // 判断标志量,如果是 1 就跳转
        if (Constants.flag == 1) {
            String fileName = target.name();
            Intent intent = new Intent(mContext, RedPackageActivity.class);
            intent.putExtra("fileName", fileName);
            mContext.startActivity(intent);
        }
        if (imagetarget == null) {
            continue;
        }
        if (box_renderer != null) {
            box_renderer.render(camera.projectionGL(0.2f, 500.f),
                targetInstance.poseGL(), imagetarget.size());
        }
    }
}
 
  • 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

这样一来跳转后只有一个 Activity,回退后也直接显示扫描界面。但是就这样的话也有一个问题。成功扫描图片一次后标志量一直大于 1 ,没办法再次扫图案抢红包了啊。所以我们还需要在红包 Activity 将标志量重置为 0。 
但是你直接在红包页面的 onCreate() 函数中重置 flag 的话,再次跳转的老 bug 又出现了。这个 bug 的出现很奇怪,也许是扫描时出现了延迟,导致退出红包 Activity 后程序还认为你扫描到了图案,再次带你去抢红包。 
那么我们把重置标志量的操作延迟一段时间吧,延迟靠什么?Handler 咯~

在 HelloAR 中新建一个 Handler:

public static Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        if (msg.what == 1) {
            Constants.flag = 0;
            removeCallbacksAndMessages(0);
        }
    }
};
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在红包 Activity 中的 onDestroy() 中给 Handler 发送一个延时消息:

HelloAR.handler.sendEmptyMessageDelayed(1, 3000);
 
  • 1

这样程序就能正常运行了。 
当然这只是我的办法,如果大家有更好的解决方法欢迎交流。

2. 扫描 SD 卡图片资源

目前我们只能扫描 assets 中的图片文件,那如何将手机 SD 卡中的图片添加到 ImageTarget 中来扫描呢? 
还记得上面的 loadAllFromJsonFile(ImageTracker tracker, String path)方法吗,我们将它改一下:

/**
 * 加载外部文件路径的图片
 */
private void loadExternalFromJsonFile(ImageTracker tracker, String path) {
    for (ImageTarget target : ImageTarget.setupAll(path, StorageType.Absolute)) {
        tracker.loadTarget(target, new FunctorOfVoidFromPointerOfTargetAndBool() {
            @Override
            public void invoke(Target target, boolean status) {
                Log.e("HelloAR", "loadAllFromJsonFile: " +
                        String.format("load target (%b): %s (%d)", status, target.name(), target.runtimeID()));
            }
        });
    }
}
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

其实我只是将 StorageType.Assets 变成了 StorageType.Absolute,但是这么一来,如果你在参数中给出的 path 是外部文件路径中的 json 文件,那么你就可以加载手机 SD 卡的图片来扫描了。 
不要忘记 Manifest 中添加权限就行了。 
具体代码不贴了,给个关键代码的下载地址,感兴趣的朋友看一下吧:

使用EasyAR.sdk创建一个简单的AR安卓应用 1.在EasyAR的官网注册一个账号,网址:http://www.easyar.cn/; 2.从官网下载EasyAR.SDK,链接:http://www.easyar.cn/view/download.html,下载下来为一个压缩包,里面有两个文件夹“package”和“unity”,unity文件夹中有一个EasyAR.unitypackage,我们用unity开发应用只需要用到这个; 阅读详情

相关推荐

EasyAR+ZXing实现UnityAR二维码扫描

本来打算使用高通的AR插件来实现,但是高通的官网老是登录不上去,没有办法只有使用EasyAR来实现(手动滑稽) EasyAR注册以及下载 首先,我们现在EasyAR的官网进行注册; 注册完成后,申请授权 不做商业开发用,我们选择个人版就好 应用名称和PaceageName需要和在unity中一致(本文我们只做Android开发,故不用申请IOS的BundleID) 授权密钥复制保存下来,等会儿要用; 申请API KEY API KEY和API Seret复制下...

weixin_42374121的博客 7127

⭐ Unity + EasyAR 照片识别

EsayAR

惊鸿醉的博客 1699

EasyAR_SDK_2.3.0_Basic for Unity

EasyAR是好用的增强现实引擎。 EasyAR SDK 2.3.0为当前最新版本。 EasyAR SDK 2.x Basic是EasyAR SDK 1.x的升级版。这个版本可以免费商用。EasyAR 1.x的所有功能仍旧可以在这个版本中找到,我们没有添加任何限制或水印。这些功能包括使用平面目标的AR,1000个以上本地目标的流畅加载和识别,基于硬解码视频和透明视频的播放,二维码识别,多目标同时跟踪等。 EasyAR SDK 2.x Pro除了拥有EasyAR SDK Basic所有功能之外还有更多特性,包括3D物体跟踪、基于SLAM的跟踪和录屏等。EasyAR SDK Pro是收费的SDK,关于费用定价、付款方式等详细信息可以在这里查看。

EasyAR SDK 学习小结

基本内容 官网地址:https://www.easyar.cn/ 当前版本:2.3.0 版本和功能对照: 基本结构: 图片识别度检测工具:https://www.easyar.cn/targetcode.html EasyAR常用的都做成了Prefab了,直接使用即可。 Key需要输入在“Tracker”里 图片识别 图片识别设置 图片识别数量 物体识别 ...

wuyt2008的专栏 1527

visual studio 2017编译Triangle库遇到的问题和解决办法

这段时间因为一个项目需要使用到Triangle这个三角剖分工具,需要在windows环境下进行对源码编译,中间踩了很多坑,特此记录下。 1、下载 下载链接是下边这个,需要翻墙 http://www.cs.cmu.edu/~quake/triangle.html 2、编译。。超。。。级。。。麻。。。烦。。。 在ubutu下安装一切顺利,完全没遇到什么麻烦,但是换到windows下就麻烦不断...

csubai07的博客 2440

ADS1231驱动开发:24位高精度ADC嵌入式实现指南

24位Δ-Σ型ADC是高精度传感器信号采集的核心器件,其原理基于过采样与数字滤波实现远超奈奎斯特极限的分辨率。技术价值在于以低成本硬件达成微伏级信号分辨能力,显著提升称重、压力、力等桥式传感器系统的动态范围与温漂稳定性。典型应用场景涵盖电子秤、工业变送器及材料测试设备等对线性度、零点漂移和抗工频干扰(50/60Hz)有严苛要求的领域。本文围绕ADS1231这一面向惠斯通电桥优化的专用ADC,深入解析其串行同步时序驱动、PGA增益配置、参考电压匹配及FreeRTOS多任务安全集成等关键工程实践。

weixin_34268462的博客 625

android studio实现ar,在Android Studio上运行EasyAR

最近项目中有需要用到AR功能,于是找到了EasyAR。在Android Studio上跑EasyAR样例的时候踩了不少坑。EasyAR官方推荐安装需求:JDK 1.7 或更新版本Android Studio 1.5 或更新版本Android NDK r10eAndroid SDK with Build Tools 至少需要版本20.0.0Android API 23 (可从Android SDK ...

weixin_42361026的博客 892

5分钟看懂LTE注网全流程:从PLMN选择到小区驻留的log分析技巧

本文深入解析了LTE终端从开机到成功驻留小区的完整流程,重点分享了基于QXDM和QCAT工具的log分析实战技巧。文章详细拆解了PLMN选择、System/Band扫频、小区搜索与同步、系统消息解析及驻留等关键步骤,并提供了高频问题场景的排查思路,帮助网络优化工程师快速定位终端侧、射频环境或网络配置问题。

app77的博客 434

【AR增强现实】EasyAR图像追踪技术制作Demo并发布于APP

全网首发EasyAR图像追踪实战项目,零基础也能做AR项目!本文章从下载Unity、EasyAR SDK开始,到模型的导入再到图像识别的处理到交互脚本的编写最后到项目的导出和运行结果,步骤解析的十分详细,非常适合新手小白做AR开发。 .................................

优快云已停更,感兴趣关注https://aaronzijingcai.github.io/ 5万+

如何实现电路级别的CDM ESD防护

采用先进制程的CMOS工艺,可能具有比以前更薄的栅极氧化物和更大的芯片尺寸,大的衬底可能积累大量的电荷,导致CDM事件期间的高ESD放电峰值电流。传统CDM保护器件使用栅极接地NMOS被添加到输入级的栅极。然而,这种方法通常会在信号路径上引入显著的寄生电容,这不适合RF应用。

weixin_42693135的博客 2504

图神经网络实战——总结 | 图神经网络展望

短短数年时间,图神经网络 (Graph Neural Networks, GNN) 已经成为一种重要的深度学习架构,并且已经广泛应用于各个行业。通过本专栏的学习,能够对图学习和 GNN 领域有一个全面的了解,并能为各种应用设计、构建GNN模型。

盼小辉丶的博客 8588

从零开始搭建安卓EasyAr环境(三) 识别成功后的回调

接着上一篇说,集成完成之后,你打开项目中Jni目录,你会看到这几个文件 重点是helloar.cc 这个文件,我们看它的代码void HelloAR::render() { glClearColor(0.f, 0.f, 0.f, 1.f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); Frame frame = au

侯大虎的博客 2961

使用DrissionPage实现携程酒店信息智能爬取

本文介绍了一个基于DrissionPage技术的携程酒店信息爬虫系统,通过监听API数据包实现高效采集。系统可自动获取酒店名称、价格、评分、位置等15个维度的数据,支持多页滚动加载和智能去重。相比传统爬虫,该方法直接解析API返回的JSON数据,避免了复杂的HTML解析和加密参数分析,提高了开发效率和稳定性。文章详细阐述了13个关键实现步骤,并强调数据采集应严格遵守法律法规,仅用于技术学习和市场研究。该系统可为旅游决策、价格监测等提供数据支持,但需注意合理使用频率和隐私保护。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 392

easyar android 开发,EasyAR 使用Unity如何导出android项目

Unity3D版本:2018.21、使用Unity制作EasyARSeanse项目,具体请参考官网论坛,这里就不细讲了:https://forum.easyar.cn/?p=422、导出为Android项目:(1)点击File-BuildSettings(2)如图点击android ,再点击SwitchPlatform (3)点击PlayerSettings 配置如下: 注意如下几点:如果...

weixin_39637700的博客 780

计算机毕设:线性回归 Xgboost LSTM 预测黄金价格实战 完整代码数据视频讲解 可直接运行

线性回归 Xgboost LSTM 预测黄金价格实战 完整代码数据视频讲解 可直接运行

1763

Python实现稳态传热传质的偏微分方程求解

通过这种方法,我们可以求解更复杂的传热传质问题,并对系统的温度和浓度分布进行分析和优化。稳态传热传质是一个重要的工程问题,涉及到物质在空间中的分布以及热量和质量的传递。每次迭代中,我们使用上一次迭代的温度值来计算下一次迭代的温度值。该图显示了平板内部各点的温度分布,其中中心温度为T1,边界温度为T2。接下来,我们创建一个N x N的温度矩阵,并将边界条件初始化为边界温度T2。假设我们有一个矩形平板,其中心温度为T1,四个边界温度为T2。假设平板的长度为L,宽度为W,中心温度为T1,边界温度为T2。

HackDashX的博客 308

EasyAR嵌入安卓和交互文档(1)

EasyAR嵌入安卓和交互文档(1) 以下U3D版本 2018.4.0 Androidstudio3.6 使用easyAR引擎的时候需要使用easyAR官网提供的key,这就要求applicationID要和官网注册的包名一致才可以。 U3D导出Androidstudio工程设置(EasyAR为主) (1)Androidstudio新建一个项目,命名和在easyAR官网注册的Bundle ID相...

gaoyu123456789的博客 655

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

EasyAR_云识别简单案例

1.打开EasyAR 云识别 官网:https://www.easyar.cn/view/developCenter.html#crs?1&1 2.登陆账号 3.点击云识别管理 4.点击新建云识别图库 5.参考下图 6.点击确定 创建完之后 就会出现一个数据库 7.点击 操作中的 管理 8.点击上传识别图 9.填写完途中的信息 10.点击密钥 ...

weixin_42137574的博客 1470

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

EasyAR4.1平面识别

EasyAR4.1发布以后,官方人员说增加了平面识别的功能,放在了运动跟踪里面。 重新下载了官方示例,安装之后看了下,点击Motion Tracking运动跟踪以后,效果如下。 运行效果 会多出一个黑色的框在平面上,但是,示例中黑色框只会有一个。点击黑色框以后,会方式一个方块。方块可以在黑框范围内拖动。 一旦放置了方块,就不会在其他位置有黑框了,必须点击按钮“Unlock Plane”之后,才能在新的位置有黑框。 场景设置 场景设置和原有的运动跟踪没区别,确实如官方所说是在运动跟踪的功能中增加了平面识别

wuyt2008的专栏 3728

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

EasyAR SDK在unity中的简单配置及构建一个简单场景。

首先打开EasyAR的官方网站http://www.easyar.cn/index.html,注册登陆之后,打开首页的开发页面。 下载sdk和Unity Samples。 创建一个unity3d工程NewAR,导入sdk解压目录中的EasyAR.unitypackage。 接下来回到EasyAR的官方网站,进入开发页面,点击创建应用。输入应用程序名称及包名。 就如图...

weixin_30916125的博客 231

EasyAR 初学者入门指南(1)---显示模型

EasyAR最基础的入门系列教程 Step 1:开发环境 在本次的案例演示中,我使用的是unity5.5.1版本

easyar的博客 3542

EasyAR(一)——显示模型

一、开发环境:unity5.6.0,EasyAR2.1 二、导入SDK 1.安装unity并被配置androidSDK跟javaJDK路径(见博客环境配置) 2.从EasyAR官网下载EasyAR(这里下载的是EasyAR2.0)下载网址http://www.easyar.cn/view/download.html 3.新建unity项目,命名随意 4.将下载的E

uokeyo的博客 4281

【Android】增强现实应用——AR画报

作品视频链接:http://v.youku.com/v_show/id_XMTU4Mzg4MzY1Mg==.html Ø  【作品名称】:《AR画报》 Ø  【实验目的】 在Android系统上,开发基于增强现实技术的应用。可以通过手机摄像头扫描的方式,获取与纸质媒体(如杂志)内容相关的视频信息,并能够让用户方便快捷地跳转到对应的网站。除了Target图片的识别,还支持二维码的识

jsgaobiao的博客 8690

unity2019+EasyAR开发多图像识别、跟踪

前言 这是我们大学开设的增强现实课程作业,老师要求我们照着视频开发一个类似的程序,用其余的marker控制一个marker的平移、旋转等操作 坑 1、一开始我用的ARcore开发,然后脑子抽了把unity更新到最新的2019就打不开了,(推荐《ARcore之路》这本书,然鹅截止到现在只有电子版,纸质版还没出,出了必买) 2、后来转到了ARfoundation,但不能平移旋转,五一假期找了两天的原...

qq_41707910的博客 4751

使用unity制作AR的方法 EasyAR+ARCore

先附上我简单做的图片识别AR 模型来自b站 喵刀Hime 大佬,点击可互动 上面的例子是用EasyAR做的 以下是我在siki学院的学习笔记,仅供参考 ##EasyAR 导入EasyAR的包,在EasyAR的官网可下载。 这里我用的是EasyAR3.0 在官网自己的账号里新建一个密匙,选择EasyAR Sense 3.0 Pro 试用,Bundle ID 和 Package Name 自己编一个,...

zhang2333333333的博客 3079
上一篇: Mac配置adb环境变量
下一篇: http://www.jianshu.com/p/7e46fe7485bb
Manaasdfasdf
博客等级 码龄11年 131粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值