相机FLASH_MODE_ON无法在Moto X上运行

时间:2014-03-17 22:15:15

标签: android android-camera

我有一个按钮,可以在FLASH_MODE_ON / FLASH_MODE_OFF之间切换闪光模式。切换适用于大多数手机(我已在Nexus 5,S4和S3上测试过)但在Moto X上拍照时无法闪光。任何想法可能是什么原因造成的?

    // Set camera params
    final Camera.Parameters params = mCamera.getParameters();
    final boolean shouldFlashBeOn = !(Camera.Parameters.FLASH_MODE_ON.equals(params.getFlashMode()));
    params.setFlashMode(shouldFlashBeOn
            ? Camera.Parameters.FLASH_MODE_ON
            : Camera.Parameters.FLASH_MODE_OFF);

    mCamera.setParameters(params);
    mCamera.startPreview();

    // Set ImageButton state
    mImageButtonFlash.setSelected(shouldFlashBeOn);

1 个答案:

答案 0 :(得分:2)

如果我遇到这种情况,我会先检查所有参数。然后找出我可以使用的值。例如,通过以下代码

打印所有参数
Parameters param = mCamera.getParameters();
Log.i("camera", param.flatten().toString());

然后检查日志

  

03-18 09:58:08.855:我/相机(32756):   优选的预览大小换视频= 1280×720;变焦= 0; MAX-NUM-被测面-HW = 5;放大支持= TRUE;计量=中心;对比度= 2;最大光圈=汽车;场景模式=汽车; JPEG-质量= 100;预览格式值= yuv420sp,YUV420P; JPEG缩略图质量= 100;预览格式= yuv420sp;视频 - 大小 - 值= 1280x720,1920x1080,960x720,720x480,640x480,352x288, 320x240,176x144;预览大小= 960x720;焦距= 3.700000; ISO =汽车;快速FPS-模式= 0;闪光模式值=自动,关闭,上,火炬;预览帧率值= 30,20,15,10;预览帧率= 30;将对焦模式值=汽车,无穷大,宏,固定的,连续的图像,连续的视频; JPEG缩略图宽度= 160;视频尺寸= 1280×720;场景模式值=自动,肖像,风景,夜景,海滩,雪景,夕阳,烟火,运动,聚会,烛光,黄昏,黎明,下降,颜色,文字,背光,预览FPS-范围 - 值=(10000,10000),(15000,15000),(15000,30000),(30000,30000); JPEG-缩略图尺寸值= 160x120,160x90,144x96,0x0;缩小比率= 100,102,104,109,111,113,119,121,124,131,134,138,146,150,155,159,165,170,182,1 89,200,213,222,232,243,255,283,300,319,364,400;预览 - 大小 - 值= 960x720,1280x720,640x480,352x288,320x240;图像尺寸值= 640x480,960x720,1024x768,1280x720,1600x1200,2560x1920,3264x2448,2048x1536,3264x1836,2048x1152,3264x2176;预览fps-范围= 15000,30000;最小曝光补偿= -4; antibanding = OFF; MAX-NUM-聚焦区域= 1;垂直视角= 49.3;水平视角= 63;视频稳定支持= TRUE; JPEG缩略图高度= 120;平滑变焦支持= FALSE;将对焦模式=自动;自动最大光圈锁支持= TRUE;视频帧格式= yuv420sp;画面格式值= JPEG ;最大曝光补偿= 4;对焦区=(0,0,0,0,0);曝光补偿= 0;曝光补偿步= 0.5;闪光模式= OFF;效果值=无,单声道,负,深褐色,曝光过度,色调分离,洗涤,复古温暖,复古冷,点蓝色,点 - 红 - 黄,点绿色,cartoonize;图像尺寸= 640×480;最大变焦= 30;效果=无;最大光圈值=汽车,白炽灯,荧光灯,日光,阴天,日光;画面格式= JPEG;对焦距离= 0.1 5,1.20,无穷远;自动曝光锁支持= TRUE; antibanding值= 50HZ,关

您可以看到可以使用的值

  

闪光模式值=自动,关闭,上,火炬;

然后通过代码

设置其中一个值
param.set("flash-mode", "on");
mCamera.setParameters(param);

你可以尝试一下。