Android 管理摄像头-无法访问摄像头
我正在写一个程序来访问摄像机。它工作了一段时间,但现在它是相机API抛出异常,因为相机仍然在使用,当我试图打开它。我认为这是因为我在onPause、onResume和我使用它的地方没有正确处理它。这是我的密码:Android 管理摄像头-无法访问摄像头,android,camera,Android,Camera,我正在写一个程序来访问摄像机。它工作了一段时间,但现在它是相机API抛出异常,因为相机仍然在使用,当我试图打开它。我认为这是因为我在onPause、onResume和我使用它的地方没有正确处理它。这是我的密码: @Override protected void onResume(){ if (!getPackageManager() .hasSystemFeature(PackageManager.FEATURE_CAMERA)) { Toast.
@Override
protected void onResume(){
if (!getPackageManager()
.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
Toast.makeText(this, "No camera on this device", Toast.LENGTH_LONG)
.show();
} else {
cameraId = findFrontFacingCamera();
if (cameraId < 0) {
Toast.makeText(this, "No front facing camera found.",
Toast.LENGTH_LONG).show();
} else {
try {
if (camera != null) {
camera.release();
camera = null;
}
camera = Camera.open(cameraId);
try {
camera.setPreviewTexture(cameraTexture);
}
catch(IOException e){
Log.i("CameraHome", "could not set camera preview");
}
}
catch (Exception e){
}
}
}
super.onResume();}
使用中:
//Take picture
camera.startPreview();
camera.takePicture(null, null,
new PhotoHandler(getApplicationContext()));
camera.stopPreview();
camera.release();
知道我做错了什么吗?每次我重新启动应用程序时,它都会抛出一个异常,表示相机正在使用,即使我启动了默认的相机应用程序并将其关闭
编辑:正在访问相机,但从未调用我的回调(PhotoHandler中的onPictureTaken),就好像没有正确捕获图片一样。证明此代码有效。必须卸载、重新启动和重新安装。然后我的onPictureTaken回调没有被调用。我相信这是因为我打电话太早了。我把它移到了我的暂停状态,并在拍照通话后取消了释放通话。现在一切正常我已经在s3中检查过了,工作正常你能给出一些样本,可以生成你得到的错误,这样我就可以帮你了。这些是我在摄影机上调用方法的唯一实例。我有一种感觉,我没有将相机释放到系统中,把相机弄糟了。现在,即使我有正确的代码,它仍然没有访问权限,因为我以前搞砸了。。。在这种情况下,我想知道是否有办法重置摄像头
camera.startPreview();takePicture(null,null,newphotohandler(getApplicationContext());camera.stopPreview();相机。释放()
在这种情况下,您必须移除摄像机.stopPreview();相机。释放()代码>我卸载、重新启动和重新安装。它现在可以进入摄像机了。。。它并没有告诉我它不能再这样了。那很好。但是,它现在没有捕获图像。我打电话给takePicture并给出一个onPictureTaken回调,但这个回调从未被输入,我相信它是固定的。我认为过早调用stopPreview会中断进程,因此我将其移动到onpause命令,并在使用该命令后删除release()
//Take picture
camera.startPreview();
camera.takePicture(null, null,
new PhotoHandler(getApplicationContext()));
camera.stopPreview();
camera.release();