Cje*_*en1 17 android android-camera android-activity
我正在写一个相机应用程序,每当我调用camera.open()应用程序崩溃然后我收到此错误:
W/CameraBase? An error occurred while connecting to camera: 0
这是我打开相机的方式:
public void getCameraInstance(){
mCamera = null;
try
{
mCamera = Camera.open(); // attempt to get a Camera instance
}
catch (Exception e)
{
// Camera is not available (in use or does not exist)
}
}
Run Code Online (Sandbox Code Playgroud)
更新:
如果您正在阅读本文,请注意这是原始相机API,不再适用最新版本的相机API(相机2).
从这一点开始,您应该使用camera2 api,因为它具有更强大的功能,并且还具有更好的图像处理流水线.
注意仅限于排除API 21(Lolipop),即不适用于Lolipop及以上.
要使用以下方法
android.hardware.Camera.open(int cameraId)
Run Code Online (Sandbox Code Playgroud)
你应该通过cameraId,如果你想要前置摄像头,你可以使用以下方法
private int findFrontFacingCamera() {
// Search for the front facing camera
int numberOfCameras = Camera.getNumberOfCameras();
for (int i = 0; i < numberOfCameras; i++) {
CameraInfo info = new CameraInfo();
Camera.getCameraInfo(i, info);
if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
cameraId = i;
cameraFront = true;
break;
}
}
return cameraId;
}
Run Code Online (Sandbox Code Playgroud)
如果其他应用程序打开了同一个摄像头,则会抛出RuntimeException.
使用完相机后必须调用release(),否则它将保持锁定状态并且对其他应用程序不可用.
您的应用程序一次只能为一个特定的硬件摄像头激活一个Camera对象.
确保您的应用具有相机权限,例如
<uses-permission android:name="android.permission.CAMERA"/>
Run Code Online (Sandbox Code Playgroud)
在AndroidManifest.xml中
| 归档时间: |
|
| 查看次数: |
31537 次 |
| 最近记录: |