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平板(不知名产品)设备前置摄像头上测试得出。由于在其他设备中没经过测试,不保证可行。