android打开前置摄像头和后置摄像头
16lz
2021-01-23
转于: 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
更多相关文章
- C语言函数以及函数的使用
- Android 程序打包及签名
- android 调用系统安装程序
- android 程序日志记录
- Android系统中自带了很多图标,我们的程序可以方便使用。
- android摄像头采集和预览-第二种方法
- H5 Web网页通过JS(JavaScript)脚本调用Android本地原生方法函数
- 在程序中设置android:gravity 和 android:layout_Gravity属性 .
- android 程序调试出现source not found的问题