【问题标题】:LED flashlight on xperia Z5xperia Z5上的LED手电筒
【发布时间】:2015-10-25 19:21:40
【问题描述】:

我正在使用以下代码来打开和关闭 LED 手电筒:

public Flashlight(SurfaceView preview, Context context){
        this.preview = preview;
        this.context = context;
        mHolder = preview.getHolder(); //mHolder is surfaceHolder
        mHolder.addCallback(this);
        try {
            mCamera = Camera.open();
            params = mCamera.getParameters();
            mCamera.setPreviewDisplay(mHolder);
            mCamera.startPreview();

            //AUTOFOCUS LASER FIX ON LG G3
            List<String> focusModes = params.getSupportedFocusModes();
            if (focusModes.contains(params.FOCUS_MODE_INFINITY)) {
                params.setFocusMode(params.FOCUS_MODE_INFINITY);
            }
            else{
                if (focusModes.contains(params.FOCUS_MODE_FIXED))
                    params.setFocusMode(params.FOCUS_MODE_FIXED);
            }
            mCamera.setParameters(params);
            cameraOpened = true;
        }catch (Exception e){
            cameraOpened = false;
            e.printStackTrace();
        }
    }
    private void turnOnFlashlight(){
        flashlightOn = true;
        params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
        mCamera.setParameters(params);
    }
    private void turnOffFlashlight(){
        flashlightOn = false;
        params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
        mCamera.setParameters(params);
    }

它在大多数手机上运行良好,但我无法在 xperia Z5 上运行。我没有 Z5 进行测试,所以我只能从用户响应中知道。所以我想问一下是否有任何其他(最好是可行的)方法来打开 Xperia Z5 上的手电筒。

感谢转发

【问题讨论】:

  • 尝试添加mCamera.setPreviewTexture(new SurfaceTexture(0));,这是我必须为某些设备添加的内容。我不知道您的setPreviewDisplay 是否已经做了类似的事情(编辑:好的,没有实际的测试设备,这是牵强的,抱歉)

标签: android surfaceview flashlight sony-xperia


【解决方案1】:

正如评论中已经提到的,我发现让闪光灯出现有 3 个步骤(目前似乎在所有设备上都可以使用)

cam.setParameters(p); // will trigger flash on most devices
// Needed for some devices.
cam.setPreviewTexture(new SurfaceTexture(0));
// Needed for some more devices.
cam.startPreview();

既然您做了其中的 2 个,请尝试添加 PreviewTexture,它应该可以工作。可以在Flashlight Widget找到工作手电筒的完整代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2012-02-11
    • 2012-03-19
    相关资源
    最近更新 更多