diff --git a/app/build.gradle b/app/build.gradle index 4d7dcc8..abf54e8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ dependencies { androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' // Required for CameraX - def camerax_version = "1.2.2" + def camerax_version = "1.2.3" implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" implementation "androidx.camera:camera-lifecycle:${camerax_version}" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 36b1460..d3ee766 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,7 +3,9 @@ xmlns:tools="http://schemas.android.com/tools"> - + + + 0) { + if (requestCode == PERMISSION_REQUEST_CODE && grantResults.length > 0) { + boolean cameraRights = grantResults[0] == PackageManager.PERMISSION_GRANTED; - if (cameraRights) { - Toast.makeText(this, "camera permission granted", Toast.LENGTH_LONG).show(); + boolean recordAudioRights = grantResults[1] == PackageManager.PERMISSION_GRANTED; + + if (cameraRights && recordAudioRights) { + Toast.makeText(this, "permissions granted", Toast.LENGTH_LONG).show(); } else { - Toast.makeText(this, "camera permission denied", Toast.LENGTH_LONG).show(); + Toast.makeText(this, "permissions denied", Toast.LENGTH_LONG).show(); } } } diff --git a/app/src/main/java/com/example/ueberwachungssystem/Recorder.java b/app/src/main/java/com/example/ueberwachungssystem/Recorder.java new file mode 100644 index 0000000..1524e46 --- /dev/null +++ b/app/src/main/java/com/example/ueberwachungssystem/Recorder.java @@ -0,0 +1,82 @@ +package com.example.ueberwachungssystem; + +import android.content.Context; +import android.media.MediaRecorder; +import android.os.Environment; + +import androidx.camera.core.Camera; + +import java.io.File; +import java.io.IOException; + +public class Recorder { + + Context context; + MediaRecorder mediaRecorder = null; + + public Recorder (Context context) { + this.context = context; + } + + + public void startRecording() { + + mediaRecorder = new MediaRecorder(); + + mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); + mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); + mediaRecorder.setOutputFile(context.getFilesDir() + "/audio.gpp"); + mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); + + + + try { + mediaRecorder.prepare(); + } catch (IOException e) { + e.printStackTrace(); + } + mediaRecorder.start(); + } + + public void stopRecording() { + if (mediaRecorder != null) { + mediaRecorder.stop(); + mediaRecorder.reset(); + mediaRecorder.release(); + mediaRecorder = null; + } + } + + + + private void initMediaRecorder() { + // Set the audio and video source + mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); + mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); + + // Set the output format and file path + mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); + //String videoFilePath = getOutputMediaFilePath(); // Custom method to get the output file path + mediaRecorder.setOutputFile(context.getFilesDir()); + + // Set the video encoder and audio encoder + mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT); + mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); + + // Configure video size, frame rate, and other settings as needed + mediaRecorder.setVideoSize(640, 480); // Set the desired video size + mediaRecorder.setVideoFrameRate(30); // Set the desired frame rate + } + + + private String getOutputMediaFilePath() { + String videoFileName = "Video.mp4"; + File storageDir = context.getFilesDir(); + + if (!storageDir.exists()) { + storageDir.mkdirs(); + } + + return storageDir.getAbsolutePath() + "/" + videoFileName; + } +}