本文来自http://www.manew.com/thread-100073-1-1.htmll

本文主要讲解的是Unity对Vuforia的开发中在原生调用摄像头上遇到的坑~Unity中调用设备摄像头打开或则关闭,或则开关扫描识别问题等等一些情况~ 下面先说说趟过的坑,再说说解决办法,或则目前没有解决的问题。

先说说情况,移动端App的iOS的项目中有三个界面,其中一个就是扫描界面,扫面界面当让是Unity对Vuforia的开发导出的工程融合在原生的项目中的~当我程序退出扫描界面后Unity和Vuforia应该处于暂停状态OnPause,笔者研究了一段时间,在iOS中使用UnityInterface.h中暴露的暂停接口根本就没有让扫描暂停~如下图

笔者尝试了一次又一次的interface中的方法,相机就根本不能暂停,,原来童话里都是骗人的~可能 有人会想到暂停不了也没有什么大不了的 吧~ 我研究了一下国内的App,是有几款App没有暂停~例如幻视,,问题又来了,,既然相机不能暂停就不让他暂停呗~ 可是我们的项目中有这样一个需求,见下图~

拍照功能~扫描界面不能暂停Camera,其他界面现在要调用Camera,,做过移动端开发的都知道,,Camera是实例化出来的,而且是单例,,如果再一次实例化这时候,程序 ~ 崩~

所以不把 摄像头暂停肯定不行~ 这时候笔者通过UnityInterface.h 的方法是Camera 暂停了,,这时候~ 新的问题又出来了,,通过这样的方法使Camera暂停了,可是Vuforia还是在继续调用摄像头再继续扫面,,,虽然Camera 是关闭了,界面上看不到,这时候其实Vuforia还是在调用摄像头继续扫面,这时候~ 笔者想到的唯一办法就是 通过Unity内部去控制Vuforia,再向原生暴露需要调用的接口~ 所以有了以下方法~

解决办法

[C#] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 关闭相机
public void CloseCameraDevice ()
{
     CameraDevice.Instance.Stop();
     CameraDevice.Instance.Deinit();
}
// 打开相机
public void OpenCameraDevice ()
{
     CameraDevice.Instance.Init(CameraDevice.CameraDirection.CAMERA_DEFAULT);
     CameraDevice.Instance.Start();
}
// 关闭识别
public void CloseCloudReco ()
{
     CloudRecoBehaviour cloudRecoBehaviour = GameObject.FindObjectOfType( typeof (CloudRecoBehaviour)) as CloudRecoBehaviour;
     cloudRecoBehaviour.CloudRecoEnabled = false ;
}
// 打开识别
public void OpenCloudReco ()
{
     CloudRecoBehaviour cloudRecoBehaviour = GameObject.FindObjectOfType( typeof (CloudRecoBehaviour)) as CloudRecoBehaviour;
     cloudRecoBehaviour.CloudRecoEnabled = true ;
}

上面这些方法是在Unity里面实现的,写在一个脚本里,挂在一个GameObject上供原生调用~

后来解决的坑~

在扫描界面打开闪关灯,因为扫描界面Unity调用了Camera,安坐的闪关灯是通过实例化相机来打开的~这时候Android拿不到Camera,因为Unity把Camera暂用了,,在扫描界面不能打开闪关灯~ 解决方法~如下

[C#] 纯文本查看 复制代码
?
1
2
3
4
5
6
public void OpenFlash () {
     CameraDevice.Instance.SetFlashTorchMode ( true );
}
public void CloseFlash () {
     CameraDevice.Instance.SetFlashTorchMode ( false );
}

vuforia 中摄像机的开启与关闭相关推荐

  1. centOS防火墙中端口的开启和关闭

    1.开启端口(以80端口为例) 方法一: /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT   写入修改  /etc/init.d/iptable ...

  2. iOS设备中WiFi、蓝牙和飞行模式的开启与关闭

    今天写了一段有关在iPhone程序中开关WiFi型号的代码,经测试运行良好. 我想不用我多说大家都应该知道以上的功能只能在越狱的设备中实现! 好了,闲话稍少叙,进入正题:1.首先要在SpringBoa ...

  3. Mybatis-plus开启或者关闭SQL日志打印

    Mybatis-plus开启或者关闭SQL日志打印 在application.yml中配置,开启或者关闭sql日志打印: 更改log-impl项即可.NoLoggingImpl不打印日志,StdOut ...

  4. 通过init.rc中的property实现动态控制service的开启与关闭

    点击打开链接 根据前一篇博客中的方法描述,我在当前正在开发的android project中进行了相应的代码实现,主要是有两处代码需要修改添加: 第一部分:init.rc 关于init.rc的作用在这 ...

  5. unity 关闭自己脚本_unity中使用代码控制脚本的开启和关闭 enabled

    学习中遇到了使用enabled 来控制脚本的开关,中间遇到了一些问题,记录一下,以便遇到类似问题的新手同学少走弯路. 在想使用代码控制脚本的开启和关闭的时候,网上搜索到的解决方案是这样的: GameO ...

  6. linux 审计oracle,开启和关闭oracle数据库中的审计功能

    开启和关闭oracle数据库中的审计功能 第1步:查看审计功能是否开启? SQL> show parameter audit; NAME           TYPE         VALUE ...

  7. guest用户计算机管理中没有,guest账户开启与关闭

    guest账户开启的方法,很多人有时候为了系统的安全,关闭了guest账户,但对于电脑小白们却不知道guest账户开启与关闭,就让小编告诉小白们guest账户开启. 1.右键点击桌面上的"计 ...

  8. linux系统如何关闭触控板,在Deepin Linux 15.7系统中开启或关闭触摸板的方法

    在Deepin Linux 15.7操作系统中开启或关闭触摸板有两种方法,一种是图形界面中操作,另一种是命令行中使用脚本实现. 一.图形界面操作 打开Deepin Linux 15.7系统的控制中心, ...

  9. 包括edge,Chrome,火狐、百度,360等浏览器怎么全屏_如何在Microsoft Edge中启用和禁用全屏模式以及解决浏览器无法开启或关闭全屏的问题

    文章目录 1. 引出问题 2. 解决问题 2.1 使用缩放菜单 2.2 Win + Shift + Enter窍门 2.3 最大化与全屏模式 2.4 以全屏模式观看网络视频 3. 重要总结 4. 解决 ...

最新文章

  1. golang中的读写锁
  2. 一条进程的栈区、堆区、数据区和代码区在内存中的映射
  3. DCMTK:OFtuple的单元测试
  4. java radio 不可选_在Java Swing中取消选择RadioButtons
  5. 深度学习之图像识别基础篇——神经元与感知机
  6. 学学Nhibernate
  7. 自动化测试--实现一套完全解耦的简单测试框架(二)
  8. 气势汹涌,天津设立千亿级AI基金;刘强东否认会因AI开除一半员工
  9. 双系统中ubuntu的安装方法
  10. python打包exe与反编译exe文件与防止反编译方式生成exe
  11. 增选54位院士,京东副总裁梅涛等18位华人入选!
  12. 鲁迅《狂人日记》全文
  13. 下月苹果“小春晚”,M2 芯片终于要来了?
  14. stm32复位引脚NRST
  15. c++/c memcpy函数用法(拷贝数组的内容)
  16. GPS卫星的信号结构
  17. 数据库课程设计(上)(学生成绩管理系统)
  18. 创龙科技全志T3国产评估板(4核ARM Cortex-A7)-性能及参数资料
  19. 龙族幻想微信一区哪个服务器人多,龙族幻想哪个区人最多_龙族幻想哪个区人多一点...
  20. 基于Python的指数基金量化投资——指数基金间相关度计算

热门文章

  1. 2019秋招求职攻略
  2. MySQL高级篇知识点——数据库的设计规范
  3. 计算机网络初探教案,网络环境下的计算机教学初探
  4. Hibernate Note
  5. mysql视频下载_Mysql基础+进阶完整版视频教程下载
  6. AI火了!盘点2019全国哪些大学开设了人工智能专业
  7. 网上购物订单管理系统(C语言)
  8. 登记一个软件著作权要钱吗?要多少钱?去哪里登记?
  9. PMBOK(第六版) PMP笔记——《第十章 项目沟通管理》
  10. 什么叫压电效应和逆压电效应,画出压电元件两种等效电路