From 10e5cb3e61afd6d820bcb222d0f07f7c2d29ac9e Mon Sep 17 00:00:00 2001 From: Bastian Kohler Date: Sun, 18 Jun 2023 12:57:50 +0200 Subject: [PATCH] Added Audio Recorder. Its working --- .../ueberwachungssystem/AudioRecorder.java | 83 +++++++++++++++++++ .../ueberwachungssystem/MainActivity.java | 5 +- 2 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/example/ueberwachungssystem/AudioRecorder.java diff --git a/app/src/main/java/com/example/ueberwachungssystem/AudioRecorder.java b/app/src/main/java/com/example/ueberwachungssystem/AudioRecorder.java new file mode 100644 index 0000000..df71c86 --- /dev/null +++ b/app/src/main/java/com/example/ueberwachungssystem/AudioRecorder.java @@ -0,0 +1,83 @@ +package com.example.ueberwachungssystem; + +import android.content.Context; +import android.media.MediaPlayer; +import android.media.MediaRecorder; + +import java.io.File; +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class AudioRecorder { + private final Context context; + private MediaRecorder mediaRecorder = null; + private boolean isRecording = false; + private File outputDir; // Default: in app files directory + + + public AudioRecorder (Context context) { + this.context = context; + this.outputDir = context.getFilesDir(); + } + + public void startRecording() { + // Handle logic + if (outputDir == null) + return; + if (isRecording) + return; + isRecording = true; + + // Setup Audio Recorder for output Format: 3GP + mediaRecorder = new MediaRecorder(); + mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); + mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); + mediaRecorder.setOutputFile(outputDir + "/" + generateFileName() + ".3gp"); + 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; + isRecording = false; + } + } + + public boolean isRecording(){ + return isRecording; + } + + public void setOutputDir(File outputDir) { + this.outputDir = outputDir; + } + + private String generateFileName(){ + // Get the current timestamp + LocalDateTime currentTime = LocalDateTime.now(); + // Define the format for the timestamp + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss"); + // Return the timestamp as a string + return currentTime.format(formatter); + } + + public void playAudio() { + MediaPlayer mp = new MediaPlayer(); + try { + mp.setDataSource(context.getFilesDir() + "/audio.3gp"); + mp.prepare(); + mp.start(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/app/src/main/java/com/example/ueberwachungssystem/MainActivity.java b/app/src/main/java/com/example/ueberwachungssystem/MainActivity.java index 377e890..463c83e 100644 --- a/app/src/main/java/com/example/ueberwachungssystem/MainActivity.java +++ b/app/src/main/java/com/example/ueberwachungssystem/MainActivity.java @@ -41,6 +41,7 @@ public class MainActivity extends AppCompatActivity { + AudioRecorder audioRecorder = new AudioRecorder(this); // video Stuff VideoDetector vd = new VideoDetector(this); @@ -55,7 +56,6 @@ public class MainActivity extends AppCompatActivity { vd.startDetection(); - ToggleButton toggleButton = findViewById(R.id.toggleButton); toggleButton.setOnClickListener(new View.OnClickListener() { @Override @@ -64,10 +64,13 @@ public class MainActivity extends AppCompatActivity { { //vd.startDetection(); vd.startRecording(); + audioRecorder.startRecording(); + } else { //vd.stopDetection(); vd.stopRecording(); + audioRecorder.stopRecording(); } } });