私は表面クラスを使用してどのようなカメラのフィルムに表示する:SurfaceViewをカメラに関連付けようとすると `UnsupportedOperationException`がスローされるのはなぜですか?
SurfaceView view = (SurfaceView) findViewById(R.id.camera_view);
Surface appSurface = view.getHolder().getSurface();
私はCameraManagerのAPIにSurfaceオブジェクトを渡す:
CameraManager manager = (CameraManager) this.getSystemService(Context.CAMERA_SERVICE);
manager.openCamera(
manager.getCameraIdList()[0],
new CameraDevice.StateCallback() {
@Override
public void onOpened(CameraDevice camera) {
// Why this line throws an exception?
camera.createCaptureSession(
Collections.singletonList(appSurface),
new CameraCaptureSession.StateCallback() {...},
null);
}
// other @Override methods
...
},
new Handler(getMainLooper())
);
そして、次の例外受け取る:
FATAL EXCEPTION: main
Process: com.google.android.apps.internal.smartcamera.tagger, PID: 8563
java.lang.UnsupportedOperationException: Unknown error -22
at android.hardware.camera2.legacy.LegacyExceptionUtils.throwOnError(LegacyExceptionUtils.java:77)
at android.hardware.camera2.legacy.LegacyCameraDevice.getSurfaceSize(LegacyCameraDevice.java:583)
at android.hardware.camera2.utils.SurfaceUtils.getSurfaceSize(SurfaceUtils.java:68)
を
SurfaceUtilsクラス(ネイティブCコード)はSurfaceのサイズを正しく読み取れません。 なぜですか?
私はそれらを持っている、それは問題を解決しません。 – mercury0114