如何使用相机闪光灯作为火炬? [英] How to use the camera Flash light as torch?

查看:177
本文介绍了如何使用相机闪光灯作为火炬?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是我的code,使手电筒在Android系统。举杯消息,它返回以下参数:自动,开,关,火炬。参数设置为FLASH_MODE_TORCH后,火炬是不是能够给我。我的清单权限是:

 <使用许可权的android:NAME =android.permission.CAMERA>< /使用许可权>
    <允许机器人:名字=android.permission.FLASHLIGHT
       机器人:permissionGroup =android.permission-group.HARDWARE_CONTROLS
       安卓的ProtectionLevel =正常/>
    <使用特征的android:NAME =android.hardware.camera>< /使用特征>

我的code:

 公共类CameraFlashActivity延伸活动{
        / **当第一次创建活动调用。 * /
        公共摄像头mCamera;
        参数cameraParameters;
        @覆盖
        公共无效的onCreate(捆绑savedInstanceState){
            super.onCreate(savedInstanceState);
            的setContentView(R.layout.main);
            布尔相机preSNT = this.getPackageManager()hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
           如果(相机preSNT == true)而
           {
               Toast.makeText(getApplicationContext(),Flash是那里,10).show();
               如果(mCamera == NULL)
               {                 尝试{
                    mCamera = Camera.open();
                    mCamera.start preVIEW();
                 Toast.makeText(getApplicationContext()相机是present,10).show();
                  }赶上(例外五){
                    Log.i(CameraFlashActivity,Camera.open()失败:+ e.getMessage());
                  }
                   如果(mCamera == NULL)
                   {
                       Toast.makeText(getApplicationContext(),Camera对象为空,10).show();
                   }
                   其他
                   {
               cameraParameters = mCamera.getParameters();
               如果(cameraParameters == NULL)
               {
                   Toast.makeText(getApplicationContext(),无摄像头参数,10).show();
               }
               其他
               {
                   清单<串GT; flashmodes = cameraParameters.getSupportedFlashModes();
                   串supportedFlashModes = cameraParameters.getFlashMode();
                   Toast.makeText(getApplicationContext(),flashmodes.toString(),10).show();
                   Toast.makeText(getApplicationContext(),supportedFlashModes,10).show();
                   cameraParameters.setFlashMode(Parameters.FLASH_MODE_ON);
                   mCamera.setParameters(cameraParameters);
                   串supportFlashModes = cameraParameters.getFlashMode();
                   Toast.makeText(getApplicationContext(),supportFlashModes,10).show();
                   Toast.makeText .show()(getApplicationContext(),10相机参数的闪光灯设置);               }
                   }
               }
               其他
               {               }
           }
           其他
           {
               Toast.makeText(getApplicationContext(),Flash是不是有,10).show();
           }
        }
        公共无效的onDestroy(){
            super.onDestroy();
            如果(mCamera!= NULL){
                cameraParameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
                   mCamera.setParameters(cameraParameters);
                   mCamera.stop preVIEW();
              mCamera.release();
            }
            Log.i(cameraFlashLight,的onDestroy);
          }
    }


解决方案

使用code序列:

  mCamera = Camera.open();
cameraParameters = mCamera.getParameters();
cameraParameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(参数);
mCamera.start preVIEW();

The following is my code to enable Flashlight in Android. In a Toast message it returned the following parameters: auto, on, off, torch. After setting the parameters to FLASH_MODE_TORCH, the torch is not enabling for me. My Manifest permissions are:

<uses-permission android:name="android.permission.CAMERA"></uses-permission>
    <permission android:name="android.permission.FLASHLIGHT"
       android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
       android:protectionLevel="normal"/>
    <uses-feature android:name="android.hardware.camera"></uses-feature>

My Code:

 public class CameraFlashActivity extends Activity {
        /** Called when the activity is first created. */
        public Camera mCamera;
        Parameters cameraParameters;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            boolean cameraPresnt = this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
           if( cameraPresnt == true)
           {
               Toast.makeText(getApplicationContext(),"Flash is there",10).show();
               if(mCamera==null)
               {

                 try {
                    mCamera = Camera.open();
                    mCamera.startPreview();
                 Toast.makeText(getApplicationContext(),"Camera is  present",10).show();
                  } catch (Exception e) {
                    Log.i("CameraFlashActivity", "Camera.open() failed: " + e.getMessage());
                  }
                   if(mCamera==null)
                   {
                       Toast.makeText(getApplicationContext(),"Camera object is null",10).show();
                   }
                   else
                   {
               cameraParameters = mCamera.getParameters();
               if(cameraParameters==null)
               {
                   Toast.makeText(getApplicationContext(),"No camera parameters",10).show();
               }
               else
               {
                   List<String> flashmodes = cameraParameters.getSupportedFlashModes();
                   String supportedFlashModes = cameraParameters.getFlashMode();
                   Toast.makeText(getApplicationContext(),flashmodes.toString(),10).show();
                   Toast.makeText(getApplicationContext(),supportedFlashModes,10).show();
                   cameraParameters.setFlashMode(Parameters.FLASH_MODE_ON);
                   mCamera.setParameters(cameraParameters);
                   String supportFlashModes = cameraParameters.getFlashMode();
                   Toast.makeText(getApplicationContext(),supportFlashModes,10).show();
                   Toast.makeText(getApplicationContext(),"Camera parameters are set on flash light",10).show();

               }
                   }
               }
               else
               {

               }
           }
           else
           {
               Toast.makeText(getApplicationContext(),"Flash is not  there",10).show();
           }
        }
        public void onDestroy() {
            super.onDestroy();
            if (mCamera != null) {
                cameraParameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
                   mCamera.setParameters(cameraParameters);
                   mCamera.stopPreview();
              mCamera.release();
            }
            Log.i("cameraFlashLight", "onDestroy");
          }
    }

解决方案

Use this sequence of code:

mCamera = Camera.open();
cameraParameters = mCamera.getParameters();
cameraParameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(parameters);
mCamera.startPreview();

这篇关于如何使用相机闪光灯作为火炬?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆