简体   繁体   English

xperia Z5上的LED手电筒

[英]LED flashlight on xperia Z5

I am using following code to turn LED flashlight on and off: 我使用以下代码打开和关闭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);
    }

It works great on most phones but I cant get it working on xperia Z5. 它在大多数手机上运行良好但我无法在xperia Z5上运行。 I dont have Z5 for testing so I only know it from user response. 我没有Z5进行测试,所以我只从用户响应中知道它。 So I would like to ask if there is any other (preferably working) way to turn on flashlight on Xperia Z5. 所以我想问一下在Xperia Z5上是否还有其他(最好是可以工作的)打开手电筒的方法。

Thanks in forward 谢谢你

As already mentioned in the comment, I found there to be 3 steps of making the flash appear (seems to be working on all devices so far) 正如评论中已经提到的那样,我发现有三个步骤可以使闪存出现(到目前为止似乎在所有设备上工作)

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();

Since you did 2 of those, try adding the PreviewTexture and it should work. 既然你做了其中的2个,那么尝试添加PreviewTexture它应该可以工作。 The whole code of a working flashlight can be found here at Flashlight Widget 可以在Flashlight Widget中找到工作手电筒的整个代码

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM