安卓 – 手电筒控制在棉花糖

安卓 – 手电筒控制在棉花糖,第1张

概述在最近的棉花糖生成中,我有一个关于相机的问题,更具体地说是手电筒. 在任何棉花糖之前,我需要做的是打开/关闭闪光灯如下: private void turnFlashOn(final Camera camera, int flashLightDurationMs) { if (!isFlashOn()) { final List<String> supportedFlash 在最近的棉花糖生成中,我有一个关于相机的问题,更具体地说是手电筒.
在任何棉花糖之前,我需要做的是打开/关闭闪光灯如下:
private voID turnFlashOn(final Camera camera,int flashlightDurationMs) {    if (!isFlashOn()) {        final List<String> supportedFlashModes = camera.getParameters().getSupportedFlashModes();        if (supportedFlashModes != null && supportedFlashModes.contains(Camera.Parameters.FLASH_MODE_TORCH)) {            mParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);            camera.setParameters(mParams);        }    }}

private voID turnFlashOff(Camera camera) {    if (camera != null) {        final List<String> supportedFlashModes = camera.getParameters().getSupportedFlashModes();        if (supportedFlashModes != null && supportedFlashModes.contains(Camera.Parameters.FLASH_MODE_OFF)) {            mParams.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);            camera.setParameters(mParams);        }    }}

不幸的是,棉花糖装置在野外开始崩溃.不知何故camera.getParameters()和camera.setParameters()开始失败,消息如:

RuntimeException: getParameters Failed (empty parameters)

RuntimeException: setParameters Failed

我尝试在获取参数之前启动和停止预览,这不再会引发错误.但是当我打电话给camera.startPrevIEw()时,预览不会恢复.

我担心释放相机并重新打开它是不成问题的,因为这需要几秒钟,会产生不好的体验.

关于如何在棉花糖中可靠地打开/关闭手电筒的建议?

解决方法 Google在OS 6(AndroID M)中推出了torchmode.
如果您的目的只是打开/关闭闪光灯,以下代码可以帮助您:
private static voID handleActionTurnOnFlashlight(Context context){    try{        CameraManager manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);        String[] List = manager.getCameraIDList();        manager.setTorchMode(List[0],true);    }    catch (CameraAccessException cae){        Log.e(TAG,cae.getMessage());        cae.printstacktrace();    }}private static voID handleActionTurnOffFlashlight(Context context){    try{        CameraManager manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);        manager.setTorchMode(manager.getCameraIDList()[0],false);    }    catch (CameraAccessException cae){        Log.e(TAG,cae.getMessage());        cae.printstacktrace();    }}

所有你需要做的是:获取相机ID的列表,哪个相机ID为零(0)是您要打开或关闭闪光灯的主要相机.只需将cameraID传递给具有布尔值的settochMode API,以打开或关闭该API.

请注意,这段代码仅适用于 *** 作系统6,因此您需要检查设备 *** 作系统,并根据您需要选择哪些API来调用棉花糖设备.

如果解决您的问题,请将此标记为解决方案.

总结

以上是内存溢出为你收集整理的安卓 – 手电筒控制在棉花糖全部内容,希望文章能够帮你解决安卓 – 手电筒控制在棉花糖所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1133519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存