【问题标题】:Camera FLASH_MODE_ON not working on Moto X相机 FLASH_MODE_ON 在 Moto X 上不起作用
【发布时间】:2014-03-18 10:11:00
【问题描述】:

我有一个按钮可以在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);

【问题讨论】:

  • 你曾经解决过这个问题吗?我面临着同样的问题,除了手电筒模式之外似乎什么也做不了。谢谢!
  • 我最终得到了一些看起来像这样的丑陋实现...... if (DeviceUtil.isMotoX() && useFlash) { Camera.Parameters params = mCamera.getParameters(); params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); mCamera.setParameters(params); }
  • 谢谢。最大的问题是 TORCH 不会导致它自动对焦,所以它通常会变得非常模糊。你能解决这个问题吗?

标签: android android-camera


【解决方案1】:

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

Parameters param = mCamera.getParameters();
Log.i("camera", param.flatten().toString());

然后查看日志

03-18 09:58:08.855:我/相机(32756): 视频的首选预览尺寸=1280x720;缩放=0;最大数量检测到的面部-hw=5;缩放支持=true;计量=中心;对比度=2;白平衡=自动;场景模式= auto;jpeg-quality=100;preview-format-values=yuv420sp,yuv420p;jpeg-thumbnail-quality=100;preview-format=yuv420sp;video-size-values=1280x720,1920x1080,960x720,720x480,640x480,352x288, 320x240,176x144;preview-size=960x720;focal-length=3.700000;iso=auto;fast-fps-mode=0;flash-mode-values=auto,off,on,torch;preview-frame-rate-values= 30,20,15,10;preview-frame-rate=30;focus-mode-values=auto,infinity,macro,fixed,continuous-picture,continuous-video;jpeg-thumbnail-width=160;video-size= 1280x720;场景模式值=自动、人像、风景、夜晚、海滩、雪景、日落、烟花、运动、派对、烛光、黄昏黎明、秋天颜色、文本、背光;预览-fps-范围- values=(10000,10000),(15000,15000),(15000,30000),(30000,30000);jpeg-thumbnail-size-values=160x120,160x90,144x96,0x0;zoom-ratios=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;preview-size-values=960x720,1280x720,640x480,352x288,320x240;picture-size-values=640x480,960x720,1024x768,1280x720,1600x1200,2560x1920,3264x2448,2048x1536,3264x1836,2048x1152,3264x2176;preview-fps- range=15000,30000;min-exposure-compensation=-4;antibanding=off;max-num-focus-areas=1;vertical-view-angle=49.3;horizo​​ntal-view-angle=63;video-stabilization-supported =true;jpeg-thumbnail-height=120;smooth-zoom-supported=false;focus-mode=auto;auto-whitebalance-lock-supported=true;video-frame-format=yuv420sp;picture-format-values=jpeg ;max-exposure-compensation=4;focus-areas=(0,0,0,0,0);exposure-compensation=0;exposure-compensation-step=0.5;flash-mode=off;效果值=none ,单色,负片,棕褐色,日晒,分色,水洗,复古暖色,复古冷色,点蓝,点红-黄,点绿,卡通化;图片尺寸=640x480;最大缩放=30;效果=无;白平衡值=自动,白炽灯,荧光灯,日光,阴天;图片格式=jpeg;焦距=0.1 5,1.20,Infinity;auto-exposure-lock-supported=true;antibanding-values=50hz,off

你可以看到你可以使用的值

flash-mode-values=auto,off,on,torch;

然后通过代码设置其中的一个值

param.set("flash-mode", "on");
mCamera.setParameters(param);

你可以试试。

【讨论】:

  • 这似乎对 Moto X 没有帮助。on、off、auto 和 torch 都被列为有效。只有手电筒会使闪光灯继续闪光,但不利于拍照。我仍然坚持使用 Moto X 上的闪光灯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-25
相关资源
最近更新 更多