移动端IOS使用EasyAr实现非unity(unity)案例介绍
来源:互联网 发布:中教数据库 评职称 编辑:程序博客网 时间:2024/06/05 23:06
前言
使用EasyAr首先我们需要在 http://www.easyar.cn/ 注册自己的账号,在开发栏创建自己的应用,生成key和自定义Bundle ID ,当然若是在自己的工程添加识别功能的话,只需将 Bundle ID 设置成工程的Bundle Identifier即可。
① IOS端EasyAr使用(unity)
因为我们想要通过unity来实现识别,那我们自然要先下载工具unity 和样例,打开样例(注意这里Open的是一个文件夹)
选择Upgrade
根据步骤,输入我们事先准备好的key
File -> Build Settings ->IOS -> Build And Run
就生成了一个Xcole文件.
打开Xcode文件,我们需要修改Bundle Identifier为我们设置的Bundle ID.还有在Info.plist文件中添加相应的视频、相机、相册权限
可参考:http://blog.csdn.net/w582324909/article/details/53539158
IOS端EasyAr使用(unity) 并不难,看看文档就解决了,只是酷炫的效果需要在uiniy中取操作,所以我们可以采用非unity的方式实现自定义视频播放
② IOS端EasyAr使用(非unity)
需求:
从相册中获取识别图(或拍照获取),从相册中获取识别视频(或拍摄获取),实现当工程进入识别状态的时候,可以通过识别到不同的照片来 跳转到下个页面播放原先指定的识别视频
步骤:首先我们需要先下载 EasyAR的iOS的原生(非Unity)sample样例,如果你在导入EasyAR创建自己的工程,你需要添加如下这些framework。
当然Bundle Identifier和info.plist的设置是一样的。
这边我们以 holloarvideo 为例
通过字符串定义一个key,输入我们事先准备好的key赋值给它。然后在 OpenGlView 的初始化方法里面传给EasyAR
- (id)initWithFrame:(CGRect)frame{ frame.size.width = frame.size.height = MAX(frame.size.width, frame.size.height); self = [super initWithFrame:frame]; if(self){ [self setupGL]; EasyAR::initialize([key UTF8String]); ar.initGL(); } return self;}
这样,我们最基本的配置就完成了。
扫描工程中原本的指定图片,我们可以看到相应的案例视频。那么这些图片和视频是通过扫描方式识别播放的呢?不难发现,在OpenGlView 的函数 void HelloARVideo::render()中
通过判断识别的图片与指定图片是否一致,一致就创建播放器,通过open的三种方法,打开普通视频,透明视频和加载网络视频,再在这里,通过矩阵变换映射的方式展示视频效果。
而根据需求,我们应该在识别前创建一个页面去做图片和视频的选择,然后当我们点击识别的时候播放我们指定的视频,在这里我的做法是通过从相册中选取照片(或拍照),从相册中选取视频(或拍摄),取得相应的照片和视频,将它们存放在沙盒中,然后在函数 void HelloARVideo::render() 中将固定的图片名和视频名替换掉,这样,就实现了从单一的图片视频播放,都任意可指定图片视频播放,但是,由于需求是识别到后跳转播放,所以我们不能用样例自带的矩阵投影变化的方法播放视频,而是在
if(frame.targets()[0].target().name() == 图片名 && texid[0]) { // 在这里去实现播放 }
又因为我们的识别ViewControl并没有直接处理识别这个功能,而是在OpenGlView中去做识别,而VC(指ViewControl)是通过控制创建和销毁OpenGlView来实现识别,那么我们想要做页面间的跳转就只能在这个实现播放处去传值或者响应事件,又由于.mm文件的限制,我选择用通知,当识别到图片时,发送一个通知给VC。让页面 dismissViewControllerAnimated
然后重写VC的初始化方法,传一个Block给它,当VC dismiss时调用Block,Block跳转新页。
这样就实现了 识别后跳转新页,再在新页实现播放等功能,完成需求。
阅读全文
1 0
- 移动端IOS使用EasyAr实现非unity(unity)案例介绍
- 移动端IOS使用EasyAr实现非unity(unity)案例介绍
- EasyAR-Unity SDK使用文档
- EasyAR非unity样例运行
- 首次接触easyAR到unity的实现
- EasyAR-(1)-导入Unity
- AR移动应用开发(一) Unity与EasyAR
- Unity系列之EasyAR——ImageTarget
- Unity-->实现物体的移动
- unity 实现宠物跟随移动
- Unity 移动端实现pad 端acceleration 控制移动、旋转
- unity移动平台shader使用
- EasyAR+Unity开发(二)HelloAR 项目剖析以及具体使用
- 使用Unity 实现 AOP
- 使用Unity 实现 AOP
- iOS集成EasyAR实现虚拟现实
- ASP.Net MVC3 使用Unity实现依赖注入介绍
- Unity 3D 移动端简单阴影的实现
- 打渔晒网问题(难度:1颗星)
- Android应用名与activity窗口标题名字如何做到不一样
- 物理机上不能通过Navicat连接虚拟机上安装的mysql解决办法
- 堆栈的相关操作_链式存储
- 数学建模与数据科学简要(Mathematical model&Data science)
- 移动端IOS使用EasyAr实现非unity(unity)案例介绍
- IP
- idea快捷键
- case when
- Qt之高级网络操作(HTTP/FTP快速上手)
- 24、二叉树中和为某一值的路径
- 树状数组,区间求和
- Java文件上传功能代码 —— 普遍适用
- git commit