android打开前置摄像头和后置摄像头
16lz
2021-12-04
转于: http://blog.csdn.net/nupt123456789/article/details/7980720
-----------------------------------------------------------------------------------------------
android打开前置摄像头和后置摄像头
前言:
我的android设备是原道N70双擎pad。这个平板电脑没有后置摄像头,只有前置摄像头,当我安装一些程序的时候,会出现“xxxx.apk已经终止”的错误,然后程序就会退出。思前想后,发现一般的应用程序是安装在手机上的,程序的默认摄像头是后置摄像头。由于我的pad没有后置摄像头,所以,调用后置摄像头就发生失败!怎么解决呢?
解决问题
编程的时候,我们在调用Camera函数的open函数之前,必须查找是否有可用的摄像头。然后将查找到的摄像头序号传递给Camera类的open函数。
- @TargetApi(9)
- privateintFindFrontCamera(){
- intcameraCount=0;
- Camera.CameraInfocameraInfo=newCamera.CameraInfo();
- cameraCount=Camera.getNumberOfCameras();//getcamerasnumber
- for(intcamIdx=0;camIdx<cameraCount;camIdx++){
- Camera.getCameraInfo(camIdx,cameraInfo);//getcamerainfo
- if(cameraInfo.facing==Camera.CameraInfo.CAMERA_FACING_FRONT){
- //代表摄像头的方位,目前有定义值两个分别为CAMERA_FACING_FRONT前置和CAMERA_FACING_BACK后置
- returncamIdx;
- }
- }
- return-1;
- }
- @TargetApi(9)
- privateintFindBackCamera(){
- intcameraCount=0;
- Camera.CameraInfocameraInfo=newCamera.CameraInfo();
- cameraCount=Camera.getNumberOfCameras();//getcamerasnumber
- for(intcamIdx=0;camIdx<cameraCount;camIdx++){
- Camera.getCameraInfo(camIdx,cameraInfo);//getcamerainfo
- if(cameraInfo.facing==Camera.CameraInfo.CAMERA_FACING_BACK){
- //代表摄像头的方位,目前有定义值两个分别为CAMERA_FACING_FRONT前置和CAMERA_FACING_BACK后置
- returncamIdx;
- }
- }
- return-1;
- }
- publicvoidsurfaceCreated(SurfaceHolderholder){
- intCammeraIndex=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
更多相关文章
- android手势滑动——左右滑动效果实现
- android camera [一] Camera open process
- Android休眠唤醒驱动流程分析
- Unity调用Android
- android 调用系统安装程序
- 2013.09.23——— android js调用
- Android调用系统自带的文件管理器进行文件选择并获得路径
- 深入理解Notification机制
- android调用系统相机并调整照片大小保存,最后上传照片