|
|
@@ -17,14 +17,14 @@ import androidx.camera.view.PreviewView; |
|
|
|
import androidx.core.content.ContextCompat; |
|
|
|
import androidx.lifecycle.LifecycleOwner; |
|
|
|
|
|
|
|
import com.example.ueberwachungssystem.DetectionReport; |
|
|
|
import com.example.ueberwachungssystem.Detector; |
|
|
|
import com.google.common.util.concurrent.ListenableFuture; |
|
|
|
|
|
|
|
import java.nio.ByteBuffer; |
|
|
|
import java.util.concurrent.ExecutionException; |
|
|
|
|
|
|
|
@ExperimentalGetImage |
|
|
|
public class VideoDetector { |
|
|
|
public class VideoDetector extends Detector { |
|
|
|
|
|
|
|
// Calling Activity |
|
|
|
private final Context context; |
|
|
@@ -36,39 +36,18 @@ public class VideoDetector { |
|
|
|
// Check Violation |
|
|
|
private final float DELTA_LUMINOSITY_THRESHOLD = 1.5f; |
|
|
|
private Float previousLuminosity = null; |
|
|
|
// On Detection Listener |
|
|
|
private OnDetectionListener listener; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** Constructor */ |
|
|
|
public VideoDetector(Context context) { |
|
|
|
super(); |
|
|
|
this.context = context; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** On Detection Listener - runs when a violation is reported */ |
|
|
|
public interface OnDetectionListener { |
|
|
|
void onDetection(DetectionReport detectionReport); |
|
|
|
} |
|
|
|
public void setOnDetectionListener(OnDetectionListener listener) { |
|
|
|
this.listener = listener; |
|
|
|
} |
|
|
|
private void reportViolation(float amplitude) { |
|
|
|
if (listener != null) { |
|
|
|
DetectionReport detectionReport = new DetectionReport("123", "Video", amplitude); |
|
|
|
listener.onDetection(detectionReport); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** Return State of Video Detector */ |
|
|
|
public Boolean isRunning() { |
|
|
|
return isDetectionRunning; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** Starts Video Detection */ |
|
|
|
@Override |
|
|
|
public void startDetection() { |
|
|
|
if (isDetectionRunning) |
|
|
|
return; |
|
|
@@ -91,6 +70,7 @@ public class VideoDetector { |
|
|
|
|
|
|
|
|
|
|
|
/** Stops Video Detection */ |
|
|
|
@Override |
|
|
|
public void stopDetection() { |
|
|
|
if (!isDetectionRunning) |
|
|
|
return; |
|
|
@@ -173,7 +153,7 @@ public class VideoDetector { |
|
|
|
private void checkForViolation(float luminosity, float previousLuminosity) { |
|
|
|
float deltaLuminosity = Math.abs(luminosity - previousLuminosity); |
|
|
|
if (deltaLuminosity > DELTA_LUMINOSITY_THRESHOLD) { |
|
|
|
reportViolation(luminosity); |
|
|
|
reportViolation("1232", "Video",luminosity); |
|
|
|
Log.d("Violation", "Violation"); |
|
|
|
} |
|
|
|
Log.d("Delta", String.valueOf(Math.abs(previousLuminosity - luminosity))); |