Android系统在2.3时才开始支持前置摄像头,然而市场上很多厂商都在Android2.2及以下的系统版本中使用了前置摄像头。那么怎样让自己的程序能够灵活切换前置和后置摄像头呢?
1、2.3及以上系统摄像头切换
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
int cameraCount
= 0;
Camera cam = null; 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后置 try { cam = Camera.open( camIdx ); } catch (RuntimeExceptione) { e.printStackTrace(); } } |
2、2.2及以下系统摄像头切换
|
1
2 3 4 |
Camera.Parameters parameters
= camera.getParameters();
List<size> supportedSizes = parameters.getSupportedPreviewSizes(); //此时supportedSizes会有多个预览尺寸。通常前置摄像头的分辨率会比较小,选择比较小的尺寸设置即可。 parameters.setPreviewSize(size.width,size.height);</size> |
上面也解释了程序在只有后置摄像头的设备上运行正常,换到有前置摄像头和后置摄像头的设备上时调用的却是前置摄像头
注意:此方法在A700平板(不知名产品)设备前置摄像头上测试得出。由于在其他设备中没经过测试,不保证可行。
1243

被折叠的 条评论
为什么被折叠?



