Android開發(fā)打開手電筒

直接看代碼:

if (mCameraRenderer.getFUCamera().getCameraFacing() == CameraFacingEnum.CAMERA_BACK){
                if (mCameraRenderer.getFUCamera().getmFaceUnityCamera().getCamera() != null){
                    Camera.Parameters mParameters = mCameraRenderer.getFUCamera().getmFaceUnityCamera().getCamera().getParameters();
                    if (mParameters.getFlashMode().equals(Camera.Parameters.FLASH_MODE_OFF)){
                        mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
                        iv_photo_flash_change.setImageResource(R.mipmap.ic_photo_flash_open);
                    } else {
                        mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
                        iv_photo_flash_change.setImageResource(R.mipmap.ic_photo_flash_close);
                    }
                    mCameraRenderer.getFUCamera().getmFaceUnityCamera().getCamera().setParameters(mParameters);

                }
            }

關(guān)鍵代碼

  1. 打開手電筒mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
  2. 關(guān)閉手電筒mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);

我上面的Camera用的是相芯美顏的,不過用不用第三方都一樣的,我看相芯里面代碼也是用的是手機(jī)Camera。

生成Camera代碼如下:

fun openCamera() {
    if (mCamera != null) {
        return
    }
    try {
        val isFront = mCameraFacing == CameraFacingEnum.CAMERA_FRONT
        val cameraId = if (isFront) mFrontCameraId else mBackCameraId
        mCamera = Camera.open(cameraId)
        if (mCamera == null) {
            throw java.lang.RuntimeException("No camera")
        }
        mExposureCompensation = EXPOSURE_COMPENSATION
        CameraUtils.setCameraDisplayOrientation(mContext, cameraId, mCamera!!)
        val parameters: Camera.Parameters = mCamera!!.parameters
        CameraUtils.setFocusModes(parameters)
        CameraUtils.chooseFrameRate(parameters,mIsHighestRate )
        val size: IntArray = CameraUtils.choosePreviewSize(parameters, mCameraWidth, mCameraHeight)
        mCameraWidth = size[0]
        mCameraHeight = size[1]
        parameters.previewFormat = ImageFormat.NV21
        CameraUtils.setParameters(mCamera, parameters)
        // log camera all parameters
        logCameraParameters()
        startPreview()
    } catch (e: Exception) {
        e.printStackTrace()
        FULogger.e(TAG, "openCamera:${e.message}")
    }

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容