转于: http://blog.csdn.net/nupt123456789/article/details/7980720
-----------------------------------------------------------------------------------------------
android打开前置摄像头和后置摄像头
前言:
我的android设备是原道N70双擎pad。这个平板电脑没有后置摄像头,只有前置摄像头,当我安装一些程序的时候,会出现“xxxx.apk已经终止”的错误,然后程序就会退出。思前想后,发现一般的应用程序是安装在手机上的,程序的默认摄像头是后置摄像头。由于我的pad没有后置摄像头,所以,调用后置摄像头就发生失败!怎么解决呢?
解决问题
编程的时候,我们在调用Camera函数的open函数之前,必须查找是否有可用的摄像头。然后将查找到的摄像头序号传递给Camera类的open函数。
- @TargetApi(9)
- private int FindFrontCamera(){
- int cameraCount = 0;
- Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
- cameraCount = Camera.getNumberOfCameras(); // get cameras number
- for ( int camIdx = 0; camIdx < cameraCount;camIdx++ ) {
- Camera.getCameraInfo( camIdx, cameraInfo ); // get camerainfo
- if ( cameraInfo.facing ==Camera.CameraInfo.CAMERA_FACING_FRONT ) {
- // 代表摄像头的方位,目前有定义值两个分别为CAMERA_FACING_FRONT前置和CAMERA_FACING_BACK后置
- return camIdx;
- }
- }
- return -1;
- }
- @TargetApi(9)
- private int FindBackCamera(){
- int cameraCount = 0;
- Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
- cameraCount = Camera.getNumberOfCameras(); // get cameras number
- for ( int camIdx = 0; camIdx < cameraCount;camIdx++ ) {
- Camera.getCameraInfo( camIdx, cameraInfo ); // get camerainfo
- if ( cameraInfo.facing ==Camera.CameraInfo.CAMERA_FACING_BACK ) {
- // 代表摄像头的方位,目前有定义值两个分别为CAMERA_FACING_FRONT前置和CAMERA_FACING_BACK后置
- return camIdx;
- }
- }
- return -1;
- }
- public void surfaceCreated(SurfaceHolder holder) {
- int CammeraIndex=FindBackCamera();
- if(CammeraIndex==-1){
- CammeraIndex=FindFrontCamera();
- }
- mCamera = Camera.open(CammeraIndex);
- }
注意:要在android2.3以上平台才可以!不然,编译不通
转载请声明:http://write.blog.csdn.net/postedit/7980720
android调用前置和后置摄像头并进行视频和图像处理示例:http://download.csdn.net/detail/nuptboyzhb/4573084
相关推荐
// 这是前置摄像头 } else if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { // 这是后置摄像头 } } ``` 在获取到摄像头ID之后,你可以通过`Camera.open(int cameraId)`方法打开指定的摄像头...
### 分别设置前置摄像头与后置摄像头的默认video quality #### 概述 在移动设备的应用开发中,摄像头是常用的功能之一。为了提供更优化的用户体验,开发者常常需要对视频质量进行调整。本文将详细介绍如何根据不同...
在Android平台上,调用和编程控制前置和后置摄像头是一项重要的功能,尤其对于那些需要进行视频拍摄、图像捕捉或者人脸识别的应用来说。本文将详细介绍如何在Android应用中实现这一功能。 首先,Android系统提供了...
这个教程将详细讲解如何使用OpenCV在Android设备上实现打开前置和后置摄像头的功能,而无需依赖额外的OpenCVManager应用程序。 首先,我们需要在Android项目中集成OpenCV库。这通常通过添加OpenCV的AAR(Android ...
本示例主要介绍如何在uni-app中实现调用摄像头进行扫码功能,同时支持前置和后置摄像头切换。这个功能在很多场景下都非常实用,比如商品扫码、二维码登录等。 首先,你需要在你的uni-app项目中引入扫码相关的插件。...
接着,我们有两个便捷的方法`hasBackFacingCamera`和`hasFrontFacingCamera`,它们分别用于检查设备是否具有后置摄像头和前置摄像头。这两个方法只是简单地调用`checkCameraFacing`,并传入相应的摄像头类型。 ```...
通常,`cameraId = 0`代表后置摄像头,`cameraId = 1`代表前置摄像头。 ```java Camera camera; int cameraId = 1; // 前置摄像头 try { camera = Camera.open(cameraId); } catch (Exception e) { // 处理无法...
通常,0代表后置摄像头,1代表前置摄像头: ```java int cameraCount = Camera.getNumberOfCameras(); if (cameraCount > 1) { CameraInfo info = new CameraInfo(); for (int i = 0; i ; i++) { Camera.get...
在Android平台上,开发一个利用前置摄像头扫描二维码的应用是一项常见的任务,尤其在移动支付、信息获取等领域广泛应用。本文将深入探讨如何实现这一功能。 首先,我们需要理解二维码(Quick Response Code)是一种...
此外,Android API提供了多种方式来控制摄像头,例如切换前置/后置摄像头,调整焦距,添加滤镜等,这些可以根据具体需求进行实现。 在CameraTest03这个项目中,你可以找到上述功能的详细实现代码,通过学习和研究,...
在Android设备上,相机切换功能允许用户在前置摄像头和后置摄像头之间自由切换。这一功能可以通过调用Camera API或者新的CameraX库来实现。Camera API提供了`setCameraId(int cameraId)`方法来切换摄像头,而Camera...
本教程将深入探讨如何创建一个支持前置和后置摄像头切换、自动对焦以及保存和显示图片的自定义相机应用。 首先,我们需要在AndroidManifest.xml文件中添加必要的权限,以访问相机和存储设备: ```xml ...
对于Camera API,可以通过Camera.open(int cameraId)方法选择摄像头,cameraId为0表示后置,1表示前置。Camera2 API则提供了更为复杂的控制,但需要API 21及以上。 **三、优化与注意事项** 1. **用户体验**:提供...
这个"Android前后摄像头同时预览"项目,通过提供的DoubleCameraDemo源代码,展示了如何实现在特定设备(如红米3S和乐视2)上同时开启并显示两个摄像头的画面。下面我们将深入探讨这个功能的实现原理和相关技术知识点...
在Android平台上开发应用程序时,有时候我们需要集成二维码扫描功能,尤其在设计支持多种设备,包括竖屏手机和平板,甚至只配备前置摄像头的设备时。这个"支持竖屏、平板和只有前置摄像头的android二维码扫描demo...
通常,0表示后置摄像头,1表示前置摄像头。 ```java int numberOfCameras = Camera.getNumberOfCameras(); if (numberOfCameras > 1) { camera.release(); camera = Camera.open(1); // 切换到前置摄像头 } ``` ...
// 获取前置摄像头,0表示后置 try { camera.setPreviewDisplay(surfaceHolder); camera.startPreview(); // 开始预览 } catch (IOException e) { e.printStackTrace(); } } @Override public void ...
3.使用场景:uniapp打包android端录制视频使用,视频组件可进行前置摄像头和后置摄像头录制,没有时间限制,小程序uniapp原生的uni.chooseVideo对android端有限制,如果原生api不能满足需求,可以使用插件。...
这可以通过`Camera.open(int cameraId)`方法实现,其中cameraId为0表示后置摄像头,1表示前置摄像头。 ```java int cameraId = Camera.CameraInfo.CAMERA_FACING_FRONT; // 获取前置摄像头 Camera camera = Camera....