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