我正试图使用一个实际的设备通过Camera2 API访问前面的摄像头
这个问题发生在试图
CameraManager.openCamera(.,.)
try {
CameraCharacteristics characteristics = manager.getCameraCharacteristics(mCameraID);
if (!mCameraOpenCloseLock.tryAcquire(2500, TimeUnit.MILLISECONDS)) {
throw new RuntimeException("Time out waiting to lock camera opening.");
}
manager.openCamera(mCameraID, mStateCallback, mBackgroundHandler);
} catch (CameraAccessException e) {
Log.e("mr", "OpenCamera - Camera Access Exception");
} catch (IllegalArgumentException e) {
Log.e("mr", "OpenCamera - Illegal Argument Exception");
} catch (SecurityException e) {
e.printStackTrace();
Log.e("mr", "OpenCamera - Security Exception:");
} catch (InterruptedException e) {
Log.e("mr", "OpenCamera - Interrupted Exception");
}凯美拉马纳格说
I/CameraManagerGlobal:连接照相机服务
它来自于这个CameraManager.java函数
private void connectCameraServiceLocked() {
// Only reconnect if necessary
if (mCameraService != null) return;
Log.i(TAG, "Connecting to camera service");那么我的GLSurfaceView仍然是空白
AndroidMainfest.xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />P.S.:
我正在使用这个例子,在Android 21或更高版本上使用OpenGL ES 2.0渲染摄像机预览
发布于 2016-06-03 19:52:02
最后,我把索尼Xperia Z5的溢价换成了另一款设备,而且效果很好。看起来,就像我在下面的链接中看到的那样,索尼在新API方面面临着一些问题:
可能会有一些工作要做,但无论如何,我正在为特定的目的制作一个应用程序,我不希望它在所有的设备上工作。
发布于 2016-06-03 00:59:03
如果您只是在复制该示例,我注意到它有以下一行:
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);前摄像头可能不支持这一点,因为它可能没有闪光灯。您需要检查哪些AE模式实际上是支持的-同样适用于不同的其他设置的样本集,在那里它没有检查设备实际支持什么。
尽管如此,如果值是坏的,您应该会得到一个错误,但是它可能会出现在CameraCaptureSession.CaptureListener.onCaptureFailed,上,并且示例没有监听这些错误。如果你查看所有的日志记录,而不仅仅是你自己的应用程序日志,相机服务中可能也有一些日志。
但是试着移除那条线,看看它是否有效。
发布于 2018-01-22 03:58:40
首先获得这样的Camera服务
CameraManager cameraManager = (CameraManager)getSystemService(Context.CAMERA_SERVICE);https://stackoverflow.com/questions/37571920
复制相似问题