android - 关闭手电筒后无法使用相机

标签 android camera flashlight

我正在为学校编写一个应用程序,它的功能需要相机拍照、裁剪、上传到服务器,之后用户必须能够打开手电筒(作为某些跟踪的一部分在做)。 以上所有操作都完美无缺 - 直到用户关闭手电筒并想要拍摄另一张照片。相机停止工作在屏幕上显示无法连接到相机的错误。

我知道有像重新连接这样的命令:http://developer.android.com/reference/android/hardware/Camera.html#reconnect() 我一直在摆弄它,但我无法让它正常工作。

为了使用相机,我使用了一个 Intent :

Intent intent    = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

手电筒代码如下所示:

private void getCamera() {
    if (camera == null) {
        try {
            camera = Camera.open();

            params = camera.getParameters();
        } catch (RuntimeException e) {
            Log.e("Camera Error. Failed to Open. Error: ", e.getMessage());
        }
    }
}

 /*
 * Turning On flash
 */
private void turnOnFlash() {
    getCamera();
    if (!isFlashOn) {
        if (camera == null || params == null) {
            return;
        }

        params = camera.getParameters();
        params.setFlashMode(Parameters.FLASH_MODE_TORCH);

        camera.setParameters(params);
        camera.startPreview();

        isFlashOn = true;
    }

}

/*
 * Turning Off flash
 */
private void turnOffFlash() {
    if (isFlashOn) {
        if (camera == null || params == null) {
            return;
        }

        params = camera.getParameters();
        params.setFlashMode(Parameters.FLASH_MODE_OFF);
        camera.setParameters(params);
        isFlashOn = false;
    }
}

有什么方法可以让手电筒和相机使用相同的相机实例(当它是一个 Intent 时)?我发现如果我释放相机,et 将变为空,并且无法再次实例化它。

提前致谢

最佳答案

@Decoid 你只需要添加一个暂停方法,我猜你还没有 如下:

    @Override
    protected void onPause()
    {
        super.onPause();
        if (!isFlashOn) {
            camera.release();
            camera = null;
    }
}

关于android - 关闭手电筒后无法使用相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17084100/

相关文章:

android - android 上 ffmpeg 命令行的问题

iphone - iOS 将照片保存在应用特定的相册中

c# - 我正在 Windows Phone 8 中制作手电筒应用程序,但我无法关闭 LED,我该怎么做?

arrays - 使用阵列中的手电筒执行摩尔斯电码

java - 将我的 Android 应用程序导出到 iPhone?

android - 什么是不可变引用?

android - 如何将 String 转换为 Drawable

ios - 在 UIView 的背景上设置摄像头

java - 媒体扫描仪正在扫描,但不刷新 (Android)

BlackBerry - 可以隐藏视频字段吗?