本文整理匯總了Java中android.hardware.camera2.CameraCaptureSession類的典型用法代碼示例。如果您正苦於以下問題:Java CameraCaptureSession類的具體用法?Java CameraCaptureSession怎麽用?Java CameraCaptureSession使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
CameraCaptureSession類屬於android.hardware.camera2包,在下文中一共展示了CameraCaptureSession類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: onCaptureFailed
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
@Override
public void onCaptureFailed(@NonNull CameraCaptureSession session,
@NonNull CaptureRequest request,
@NonNull CaptureFailure failure) {
super.onCaptureFailed(session, request, failure);
this.session = null;
switch (failure.getReason()) {
case CaptureFailure.REASON_ERROR:
Timber.e("Capture failed: REASON_ERROR");
break;
case CaptureFailure.REASON_FLUSHED:
Timber.e("Capture failed: REASON_FLUSHED");
break;
default:
Timber.e("Capture failed: UNKNOWN");
break;
}
}
示例2: setRepeatingBurst
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
/**
* Set a repeating burst request.
*/
public void setRepeatingBurst(final List<CaptureRequest> requests,
final CameraCaptureSession.CaptureCallback listener, final Handler handler) {
mCameraHandler.post(() -> {
try {
mCameraSession.setRepeatingBurst(requests, listener, handler);
} catch (CameraAccessException e) {
String errorMessage = mErrorDisplayer.getErrorString(e);
mErrorDisplayer.showErrorDialog(errorMessage);
}
});
}
示例3: onCaptureCompleted
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
@Override
public void onCaptureCompleted(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, @NonNull TotalCaptureResult result) {
if(request.getTag() == ("FOCUS_TAG")) {
//The focus trigger is complete!
//Resume repeating request, clear AF trigger.
mAutoFocusCallback.onAutoFocus(true);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, null);
mPreviewRequestBuilder.setTag("");
mPreviewRequest = mPreviewRequestBuilder.build();
try {
mCaptureSession.setRepeatingRequest(mPreviewRequest, mCaptureCallback, mBackgroundHandler);
} catch(CameraAccessException ex) {
Log.d(TAG, "AUTO FOCUS FAILURE: "+ex);
}
} else {
process(result);
}
}
示例4: setupCaptureRequestForPreview
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
/**
* does setup the repeating capture request for taking images for the preview
*/
@VisibleForTesting
void setupCaptureRequestForPreview(@NonNull CameraCaptureSession previewSession, @NonNull CameraDevice camera,
@NonNull List<Surface> surfaces) {
try {
CaptureRequest.Builder previewRequestBuilder = camera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
for (Surface surface : surfaces) {
previewRequestBuilder.addTarget(surface);
}
previewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
previewSession.setRepeatingRequest(previewRequestBuilder.build(), null, null);
} catch (CameraAccessException | IllegalStateException e) {
throw new CameraException(e);
}
}
示例5: connectPreview
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
/**
* connects a new camera preview session to the UI
*/
private void connectPreview() {
try {
setupPreviewSizeAndImageReader();
cameraHelper.startCameraPreview(openCamera, binding.preview, previewSize, getDeviceOrientation(),
getRelativeDisplayRotation(), imageReader, new Consumer<CameraCaptureSession>() {
@Override
public void accept(CameraCaptureSession cameraCaptureSession) {
openPreviewSession = cameraCaptureSession;
}
});
} catch (CameraException e) {
cleanup();
logErrorAndFinish("connectPreview failed: %s", e.getMessage());
}
}
示例6: updatePreview
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
private void updatePreview(CameraCaptureSession cameraCaptureSession) {
if (null == cameraDevice) {
return;
}
captureSession = cameraCaptureSession;
setFlashModeAndBuildPreviewRequest(configurationProvider.getFlashMode());
}
示例7: captureStillPicture
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
private void captureStillPicture() {
try {
if (null == cameraDevice) {
return;
}
final CaptureRequest.Builder captureBuilder =
cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
captureBuilder.addTarget(imageReader.getSurface());
captureBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, getPhotoOrientation(configurationProvider.getSensorPosition()));
CameraCaptureSession.CaptureCallback CaptureCallback = new CameraCaptureSession.CaptureCallback() {
@Override
public void onCaptureCompleted(@NonNull CameraCaptureSession session,
@NonNull CaptureRequest request,
@NonNull TotalCaptureResult result) {
Log.d(TAG, "onCaptureCompleted: ");
}
};
captureSession.stopRepeating();
captureSession.capture(captureBuilder.build(), CaptureCallback, null);
} catch (CameraAccessException e) {
Log.e(TAG, "Error during capturing picture");
}
}
示例8: onConfigured
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
@Override
public void onConfigured(@NonNull CameraCaptureSession cameraCaptureSession) {
// The camera is already closed
if (mCameraDevice == null) {
return;
}
// When the session is ready, we start capture.
mCaptureSession = cameraCaptureSession;
triggerImageCapture();
}
示例9: onCaptureCompleted
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
@Override
public void onCaptureCompleted(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request,
@NonNull TotalCaptureResult result) {
super.onCaptureCompleted(session, request, result);
if (picturesTaken.lastEntry() != null) {
capturingListener.onCaptureDone(picturesTaken.lastEntry().getKey(), picturesTaken.lastEntry().getValue());
Log.i(TAG, "done taking picture from camera " + cameraDevice.getId());
}
closeCamera();
}
開發者ID:botyourbusiness,項目名稱:android-camera2-secret-picture-taker,代碼行數:11,代碼來源:PictureCapturingServiceImpl.java
示例10: onCaptureCompleted
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
@Override
public void onCaptureCompleted(@NonNull CameraCaptureSession session,
@NonNull CaptureRequest request,
@NonNull TotalCaptureResult result) {
session.close();
mCaptureSession = null;
Log.d(TAG, "CaptureSession closed");
}
示例11: captureStillPicture
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
/**
* Capture a still picture. This method should be called when we get a response in
* {@link #mCaptureCallback} from both {@link #lockFocus()}.
*/
private void captureStillPicture() {
try {
final Activity activity = getActivity();
if (null == activity || null == mCameraDevice) {
return;
}
// This is the CaptureRequest.Builder that we use to take a picture.
final CaptureRequest.Builder captureBuilder =
mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
captureBuilder.addTarget(mImageReader.getSurface());
// Use the same AE and AF modes as the preview.
captureBuilder.set(CaptureRequest.CONTROL_AF_MODE,
CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
setAutoFlash(captureBuilder);
// Orientation
int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, getOrientation(rotation));
CameraCaptureSession.CaptureCallback CaptureCallback
= new CameraCaptureSession.CaptureCallback() {
@Override
public void onCaptureCompleted(@NonNull CameraCaptureSession session,
@NonNull CaptureRequest request,
@NonNull TotalCaptureResult result) {
showToast("Saved: " + mFile);
Log.d(TAG, mFile.toString());
unlockFocus();
}
};
mCaptureSession.stopRepeating();
mCaptureSession.capture(captureBuilder.build(), CaptureCallback, null);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
示例12: onConfigured
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
@Override
public void onConfigured(CameraCaptureSession session) {
Log.d(TAG, "mSessionPreviewStateCallback onConfigured");
mSession = session;
try {
mPreviewBuilder.set(CaptureRequest.CONTROL_AF_MODE,
CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
mPreviewBuilder.set(CaptureRequest.CONTROL_AE_MODE,
CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
session.setRepeatingRequest(mPreviewBuilder.build(), mSessionCaptureCallback, mHandler);
} catch (CameraAccessException e) {
e.printStackTrace();
Log.e(TAG, "set preview builder failed." + e.getMessage());
}
}
示例13: onCaptureProgressed
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
@Override
public void onCaptureProgressed(CameraCaptureSession session, CaptureRequest request,
CaptureResult partialResult) {
Log.d(TAG, "mSessionCaptureCallback, onCaptureProgressed");
mSession = session;
checkState(partialResult);
}
示例14: captureStillPicture
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
/**
* Capture a still picture. This method should be called when we get a response in
* {@link #mCaptureCallback} from both {@link #lockFocus()}.
*/
private void captureStillPicture() {
try {
removeCaptureMessage();
final Activity activity = getActivity();
if (null == activity || null == mCameraDevice) {
return;
}
// This is the CaptureRequest.Builder that we use to take a picture.
final CaptureRequest.Builder captureBuilder =
mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
captureBuilder.addTarget(mImageReader.getSurface());
// Use the same AE and AF modes as the preview.
// captureBuilder.set(CaptureRequest.CONTROL_AF_MODE,
// CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
// updateAutoFocus();
updateFlash(captureBuilder);
// Orientation
int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, getOrientation(rotation));
CameraCaptureSession.CaptureCallback CaptureCallback
= new CameraCaptureSession.CaptureCallback() {
@Override
public void onCaptureCompleted(@NonNull CameraCaptureSession session,
@NonNull CaptureRequest request,
@NonNull TotalCaptureResult result) {
unlockFocus();
}
};
mPreviewSession.stopRepeating();
mPreviewSession.capture(captureBuilder.build(), CaptureCallback, mBackgroundHandler);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
示例15: onCaptureStarted
import android.hardware.camera2.CameraCaptureSession; //導入依賴的package包/類
@Override
public void onCaptureStarted(@NonNull CameraCaptureSession session,
@NonNull CaptureRequest request, long timestamp, long frameNumber) {
super.onCaptureStarted(session, request, timestamp, frameNumber);
Timber.d("Capture started.");
this.session = session;
}