Browse Source

Fixed a bug in the video decoder

pull/4/head
Bastian Kohler 1 year ago
parent
commit
2501662737

+ 1
- 36
app/src/main/java/com/example/ueberwachungssystem/MainActivity.java View File

@@ -54,7 +54,7 @@ public class MainActivity extends AppCompatActivity {
vd.setOnDetectionListener(new VideoDetector.OnDetectionListener() {
@Override
public void onDetection(DetectionReport detectionReport) {
Log.d("Listener", detectionReport.detectionType);
detectionReport.log("OnDetection");
}
});
vd.startDetection();
@@ -99,39 +99,4 @@ public class MainActivity extends AppCompatActivity {
}
}
}


private void previewCamera() {
// Request Camera Access
getCameraAccess();
// Return when Camera Access not allowed or Camera Preview is running
if (!isCameraAccessAllowed() || cameraPreviewIsRunning)
return;
// Camera Preview is running
cameraPreviewIsRunning = true;
// Request Camera Provider
final ListenableFuture<ProcessCameraProvider> cameraProviderFuture = ProcessCameraProvider.getInstance(this);
//Check for Camera availability
cameraProviderFuture.addListener(new Runnable() {
@Override
public void run() {
try {
ProcessCameraProvider cameraProvider = cameraProviderFuture.get();
bindPreview(cameraProvider);
} catch (ExecutionException | InterruptedException e) {
// No errors need to be handled for this Future. This should never be reached.
}
}
},ContextCompat.getMainExecutor(this));
}

private void bindPreview(@NonNull ProcessCameraProvider cameraProvider) {
// Create Preview
Preview preview = new Preview.Builder().build();
// Specify which Camera to use
CameraSelector cameraSelector = new CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_BACK).build();
// Connect Preview to PreviewView
preview.setSurfaceProvider(previewView.getSurfaceProvider());
Camera camera = cameraProvider.bindToLifecycle((LifecycleOwner)this, cameraSelector, preview);
}
}

+ 13
- 5
app/src/main/java/com/example/ueberwachungssystem/VideoDetection/VideoDetector.java View File

@@ -25,6 +25,7 @@ import java.util.concurrent.ExecutionException;

@ExperimentalGetImage
public class VideoDetector {

// Calling Activity
private final Context context;
// Camera Provider
@@ -41,20 +42,23 @@ public class VideoDetector {


/** Constructor */
public VideoDetector(Context context) { this.context = context; }
public VideoDetector(Context context) {
this.context = context;
}


/** On Detection Listener - runs when a violation is reported */
public interface OnDetectionListener {
public void onDetection(DetectionReport detectionReport);
void onDetection(DetectionReport detectionReport);
}
public void setOnDetectionListener(OnDetectionListener listener) {
this.listener = listener;
}
public void reportViolation(float amplitude) {
DetectionReport detectionReport = new DetectionReport("123", "Video", amplitude);
if (listener != null)
if (listener != null) {
DetectionReport detectionReport = new DetectionReport("123", "Video", amplitude);
listener.onDetection(detectionReport);
}
}


@@ -66,7 +70,8 @@ public class VideoDetector {

/** Starts Video Detection */
public void startDetection() {
isDetectionRunning = true;
if (isDetectionRunning)
return;
// Request Camera Provider
final ListenableFuture<ProcessCameraProvider> cameraProviderFuture = ProcessCameraProvider.getInstance(context);
//Check for Camera availability
@@ -76,6 +81,7 @@ public class VideoDetector {
try {
cameraProvider = cameraProviderFuture.get();
bindLuminosityAnalysis(cameraProvider);
isDetectionRunning = true;
} catch (ExecutionException | InterruptedException e) {
// No errors need to be handled for this Future. This should never be reached.
}
@@ -86,6 +92,8 @@ public class VideoDetector {

/** Stops Video Detection */
public void stopDetection() {
if (!isDetectionRunning)
return;
cameraProvider.unbindAll();
isDetectionRunning = false;
}

Loading…
Cancel
Save