Android闪光灯在相机运行时使用按钮开关的方法

3

我看到有很多类似的问题,但是没有找到任何方法。在我的应用程序中,我有自己的相机,带有一些选项,并且还有一个名为btnFlash的按钮,用于在相机运行时打开/关闭相机的闪光灯。我尝试了很多方法,但是没有像三星Tab和HTC那样起作用。这里是其中之一。

ImageButton btnFlash = (ImageButton) findViewById(R.id.btn_flash);
        btnFlash.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                Context context = getApplicationContext();
                if( context .getPackageManager().hasSystemFeature(getPackageManager().FEATURE_CAMERA_FLASH)) {
                    Parameters params = mCamera.getParameters();
                    if(isFlashOn) {
                        params.setFlashMode(Parameters.FLASH_MODE_OFF);
                        mCamera.setParameters(params);
                        isFlashOn = false;
                    } else {
                        params.setFlashMode(Parameters.FLASH_MODE_ON);
                        mCamera.setParameters(params);
                        isFlashOn = true;
                    }
                }
            }
        });
  1. 有没有人能推荐一些好的教程或者代码呢?
  2. 同样的代码在HTC上可以运行,但是在三星上不能运行吗?我的意思是我是否可以为任何类型的Android设备编写代码?

提前感谢您的帮助。


闪光灯经常出现问题。您必须使用SurfaceView来打开/关闭闪光灯。然后它将像魅力一样工作。 - baldguy
Surface View?但是怎么做呢?我有一个 Surface View,上面显示着我的相机视频,请问您能否提供更多细节信息?非常感谢,如果您能提供更多细节,请在评论中留言。 - Hayk Nahapetyan
请查看我下面发布的答案。 - baldguy
2个回答

2

@HaykNahapetyan 请查看这个答案。 - baldguy
@Rahil2952 请检查这个问题,和这个一样:https://dev59.com/Znvaa4cB1Zd3GeqPFJhN - Sun

0

我之前也遇到同样的问题,我认为你应该替换

    params.setFlashMode(Parameters.FLASH_MODE_ON);

使用这个

    params.setFlashMode(Parameters.FLASH_MODE_TORCH);

我测试了参数

    Parameters.FLASH_MODE_ON
    Parameters.FLASH_MODE_RED_EYE

我也遇到了同样的问题,我认为这个问题是由于设备没有适当的硬件参数引起的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接