Skip to content

Commit 1584c91

Browse files
record/preview中にlightが操作された場合でも処理を停止しないようにした。
1 parent 4848ab0 commit 1584c91

2 files changed

Lines changed: 14 additions & 3 deletions

File tree

dConnectDevicePlugin/dConnectDeviceHost/app/src/main/java/org/deviceconnect/android/deviceplugin/host/camera/CameraWrapper.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,9 @@ public synchronized void stopRecording() throws CameraWrapperException {
551551
close();
552552
if (mIsPreview) {
553553
startPreview(mPreviewSurface, true);
554+
} else if (mIsTouchOn) {
555+
mIsTouchOn = false;
556+
turnOnTorch();
554557
}
555558
notifyCameraEvent(CameraEvent.STOPPED_VIDEO_RECORDING);
556559
}
@@ -623,17 +626,21 @@ public void onCaptureBufferLost(@NonNull CameraCaptureSession session, @NonNull
623626
}
624627
resumeRepeatingRequest();
625628
throw new CameraWrapperException(e);
629+
} finally {
630+
mIsTakingStillImage = false;
626631
}
627632
}
628633

629634
private void resumeRepeatingRequest() {
630-
mIsTakingStillImage = false;
631635

632636
try {
633637
if (mIsRecording) {
634638
startRecording(mRecordingSurface, true);
635639
} else if (mIsPreview) {
636640
startPreview(mPreviewSurface, true);
641+
} else if (mIsTouchOn) {
642+
mIsTouchOn = false;
643+
turnOnTorch();
637644
} else {
638645
close();
639646
}
@@ -794,6 +801,9 @@ public synchronized void turnOnTorch(final @Nullable TorchOnListener listener,
794801
if (mTargetSurface != null) {
795802
requestBuilder.addTarget(mTargetSurface);
796803
}
804+
}
805+
if (mIsRecording) {
806+
requestBuilder.addTarget(mRecordingSurface);
797807
} else {
798808
requestBuilder.addTarget(mDummyPreviewReader.getSurface());
799809
}
@@ -849,7 +859,7 @@ public synchronized void turnOffTorch(final @Nullable TorchOffListener listener,
849859
} catch (CameraWrapperException e) {
850860
throw new IllegalArgumentException(e);
851861
} finally {
852-
close();
862+
resumeRepeatingRequest();
853863
}
854864
notifyTorchOffEvent(listener, handler);
855865
}

dConnectDevicePlugin/dConnectDeviceHost/app/src/main/java/org/deviceconnect/android/deviceplugin/host/profile/HostMediaStreamingRecordingProfile.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -696,7 +696,8 @@ public boolean onRequest(final Intent request, final Intent response) {
696696
return true;
697697
}
698698

699-
if (recorder.getState() != HostMediaRecorder.RecorderState.INACTIVE) {
699+
if (recorder.getState() != HostMediaRecorder.RecorderState.INACTIVE
700+
&& recorder.getState() != HostMediaRecorder.RecorderState.PREVIEW) {
700701
MessageUtils.setIllegalDeviceStateError(response,
701702
recorder.getName() + " is already running.");
702703
return true;

0 commit comments

Comments
 (0)