From 165e06b89c135d73e6f296d31c86dc66a8698e73 Mon Sep 17 00:00:00 2001
From: Agnieszka C <85929121+Aga-C@users.noreply.github.com>
Date: Sun, 3 Oct 2021 20:19:16 +0200
Subject: [PATCH] Added OPUS codec support (#38)
---
.../voicerecorder/activities/SettingsActivity.kt | 7 +++++--
.../voicerecorder/helpers/Config.kt | 12 ++++++++++++
.../voicerecorder/helpers/Constants.kt | 1 +
.../voicerecorder/services/RecorderService.kt | 4 ++--
app/src/main/res/values/donottranslate.xml | 1 +
5 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/activities/SettingsActivity.kt
index 9e2db66..d3725ce 100644
--- a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/activities/SettingsActivity.kt
@@ -10,8 +10,7 @@ import com.simplemobiletools.commons.helpers.isQPlus
import com.simplemobiletools.commons.models.RadioItem
import com.simplemobiletools.voicerecorder.R
import com.simplemobiletools.voicerecorder.extensions.config
-import com.simplemobiletools.voicerecorder.helpers.EXTENSION_M4A
-import com.simplemobiletools.voicerecorder.helpers.EXTENSION_MP3
+import com.simplemobiletools.voicerecorder.helpers.*
import kotlinx.android.synthetic.main.activity_settings.*
import java.util.*
@@ -101,6 +100,10 @@ class SettingsActivity : SimpleActivity() {
RadioItem(EXTENSION_M4A, getString(R.string.m4a)),
RadioItem(EXTENSION_MP3, getString(R.string.mp3)))
+ if (isQPlus()) {
+ items.add(RadioItem(EXTENSION_OGG, getString(R.string.ogg)))
+ }
+
RadioGroupDialog(this@SettingsActivity, items, config.extension) {
config.extension = it as Int
settings_extension.text = config.getExtensionText()
diff --git a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/helpers/Config.kt
index b7acf9f..83d5ebc 100644
--- a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/helpers/Config.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/helpers/Config.kt
@@ -1,6 +1,7 @@
package com.simplemobiletools.voicerecorder.helpers
import android.content.Context
+import android.media.MediaRecorder
import com.simplemobiletools.commons.helpers.BaseConfig
import com.simplemobiletools.voicerecorder.R
@@ -23,6 +24,17 @@ class Config(context: Context) : BaseConfig(context) {
fun getExtensionText() = context.getString(when (extension) {
EXTENSION_M4A -> R.string.m4a
+ EXTENSION_OGG -> R.string.ogg
else -> R.string.mp3
})
+
+ fun getOutputFormat() = when (extension) {
+ EXTENSION_OGG -> MediaRecorder.OutputFormat.OGG
+ else -> MediaRecorder.OutputFormat.MPEG_4
+ }
+
+ fun getAudioEncoder() = when (extension) {
+ EXTENSION_OGG -> MediaRecorder.AudioEncoder.OPUS
+ else -> MediaRecorder.AudioEncoder.AAC
+ }
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/helpers/Constants.kt
index f00baaf..242b55d 100644
--- a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/helpers/Constants.kt
@@ -16,6 +16,7 @@ const val TOGGLE_PAUSE = PATH + "TOGGLE_PAUSE"
const val EXTENSION_M4A = 0
const val EXTENSION_MP3 = 1
+const val EXTENSION_OGG = 2
const val RECORDING_RUNNING = 0
const val RECORDING_STOPPED = 1
diff --git a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/services/RecorderService.kt b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/services/RecorderService.kt
index b9a2b60..a455826 100644
--- a/app/src/main/kotlin/com/simplemobiletools/voicerecorder/services/RecorderService.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/voicerecorder/services/RecorderService.kt
@@ -74,8 +74,8 @@ class RecorderService : Service() {
currFilePath = "$baseFolder/${getCurrentFormattedDateTime()}.${config.getExtensionText()}"
recorder = MediaRecorder().apply {
setAudioSource(MediaRecorder.AudioSource.CAMCORDER)
- setOutputFormat(MediaRecorder.OutputFormat.MPEG_4)
- setAudioEncoder(MediaRecorder.AudioEncoder.AAC)
+ setOutputFormat(config.getOutputFormat())
+ setAudioEncoder(config.getAudioEncoder())
setAudioEncodingBitRate(128000)
setAudioSamplingRate(44100)
diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml
index d16bdeb..6492b04 100644
--- a/app/src/main/res/values/donottranslate.xml
+++ b/app/src/main/res/values/donottranslate.xml
@@ -3,5 +3,6 @@
com.simplemobiletools.voicerecorder
m4a
mp3
+ ogg