下面列出了怎么用android.hardware.camera2.CaptureFailure的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void onFailed(CaptureFailure failure)
{
if (failure.getReason() == CaptureFailure.REASON_ERROR)
{
mConsecutiveErrorCount++;
mLog.e(String.format("onCaptureFailed() REASON_ERROR: Consecutive error count = %d x" +
" %d", mConsecutiveErrorCount, mFailureLevel));
if (mConsecutiveErrorCount >= mConsecutiveFailureThreshold)
{
mConsecutiveErrorCount = 0;
mFailureFrameNumber = failure.getFrameNumber();
if (mFailureLevel < mRecoveryStrategies.size())
{
mLog.e(String.format("onCaptureFailed() REASON_ERROR: Repeat failure " +
"detected (x%d). Attempting recovery strategy: %s",
mConsecutiveErrorCount, mRecoveryStrategies.get(mFailureLevel)
.toString()));
mRecoveryStrategies.get(mFailureLevel).run();
}
mFailureLevel++;
}
}
}
@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;
}
}
@Override
public void onCaptureFailed(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, @NonNull CaptureFailure failure) {
if (request.getTag() == "FOCUS_TAG") {
Log.d(TAG, "Manual AF failure: " + failure);
mAutoFocusCallback.onAutoFocus(false);
}
}
@Override
public void onFailed(CaptureFailure failure)
{
super.onFailed(failure);
if (failure.getReason() == CaptureFailure.REASON_FLUSHED)
{
mMetadata.cancel(true);
} else if (failure.getReason() == CaptureFailure.REASON_ERROR)
{
mMetadata.setException(new IllegalStateException("CaptureFailure.REASON_ERROR!"));
}
}
@Override
public void onFailed(CaptureFailure failure)
{
for (ResponseListener listener : mListeners)
{
listener.onFailed(failure);
}
}
@Override
public void onCaptureFailed(CameraCaptureSessionProxy session, CaptureRequest request,
CaptureFailure failure)
{
Object tag = request.getTag();
mListeners.get(tag).onFailed(failure);
}
@Override
public void onCaptureFailed(final CameraCaptureSession session, final CaptureRequest request,
final CaptureFailure failure) {
mHandler.post(new Runnable() {
@Override
public void run() {
mListener.onCaptureFailed(session, request, failure);
}});
}
@Override
public void onCaptureFailed(CameraCaptureSession session, CaptureRequest request,
CaptureFailure failure) {
for (CaptureCallback target : mRecipients) {
target.onCaptureFailed(session, request, failure);
}
}
@Override
public void onCaptureFailed(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, @NonNull CaptureFailure failure) {
if(request.getTag() == "FOCUS_TAG") {
Log.d(TAG, "Manual AF failure: "+failure);
mAutoFocusCallback.onAutoFocus(false);
}
}
@Override
public void onCaptureFailed(CameraCaptureSession session, CaptureRequest request,
CaptureFailure failure) {
int requestId = (int) request.getTag();
synchronized (mCameraStateLock) {
mJpegResultQueue.remove(requestId);
mRawResultQueue.remove(requestId);
finishedCaptureLocked();
}
showToast("Capture failed!");
}
@Override
public void onCaptureFailed(
CameraCaptureSession session, CaptureRequest request, CaptureFailure failure) {
Logging.d(TAG, "Capture failed: " + failure);
}
public void onCaptureFailed(CameraCaptureSessionProxy session, CaptureRequest request,
CaptureFailure failure);
@Override
public void onCaptureFailed(CameraCaptureSession session, CaptureRequest request,
CaptureFailure failure)
{
mCallback.onCaptureFailed(AndroidCameraCaptureSessionProxy.this, request, failure);
}
@Override
public void onCaptureFailed(CameraCaptureSession session, CaptureRequest request,
CaptureFailure failure) {
Log.e(TAG, "Capture attempt failed with reason " + failure.getReason());
}
@Override
public void onCaptureFailed(CameraCaptureSession session, CaptureRequest request,
CaptureFailure failure) {
if (mProxy != null) mProxy.onCaptureFailed(session, request, failure);
mStateChangeListener.onStateChanged(CAPTURE_FAILED);
}
@Override
public void onCaptureFailed(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, @NonNull CaptureFailure failure) {
super.onCaptureFailed(session, request, failure);
}
@Override
public void onCaptureFailed(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, @NonNull CaptureFailure failure) {
super.onCaptureFailed(session, request, failure);
}
@Override
public void onCaptureFailed(
CameraCaptureSession session, CaptureRequest request, CaptureFailure failure) {
Logging.d(TAG, "Capture failed: " + failure);
}
/**
* This method is called instead of {@link #onCaptureCompleted} when the
* camera device failed to produce a {@link CaptureResult} for the
* request.
*/
public void onCaptureFailed(CameraDevice camera,
CaptureRequest request, CaptureFailure failure);
/**
* Note that this is typically invoked on the camera thread and at high
* frequency, so implementations must execute quickly and not make
* assumptions regarding the thread they are on.
*
* @See {@link android.hardware.camera2.CameraCaptureSession.CaptureCallback#onCaptureFailed}
*/
public void onFailed(CaptureFailure failure)
{
}