diff --git a/src/main/java/eu/siacs/conversations/ui/RecordingActivity.java b/src/main/java/eu/siacs/conversations/ui/RecordingActivity.java index ad8684b72658039fed302f46a3203875a9caa473..1624295a2ce35a7bd3e88aeb15da9ae074b65325 100644 --- a/src/main/java/eu/siacs/conversations/ui/RecordingActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/RecordingActivity.java @@ -98,10 +98,17 @@ public class RecordingActivity extends Activity implements View.OnClickListener private boolean startRecording() { mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); - mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); - mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); - mRecorder.setAudioEncodingBitRate(96000); - mRecorder.setAudioSamplingRate(22050); + if (Build.VERSION.SDK_INT >= 29) { + mRecorder.setOutputFormat(MediaRecorder.OutputFormat.OGG); + mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.OPUS); + mRecorder.setAudioEncodingBitRate(24000); + mRecorder.setAudioSamplingRate(48000); + } else { + mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); + mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); + mRecorder.setAudioEncodingBitRate(96000); + mRecorder.setAudioSamplingRate(22050); + } setupOutputFile(); mRecorder.setOutputFile(mOutputFile.getAbsolutePath()); @@ -177,7 +184,12 @@ public class RecordingActivity extends Activity implements View.OnClickListener private File generateOutputFilename() { final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmmssSSS", Locale.US); - final String filename = "RECORDING_" + dateFormat.format(new Date()) + ".m4a"; + final String filename; + if (Build.VERSION.SDK_INT >= 29) { + filename = "RECORDING_" + dateFormat.format(new Date()) + ".opus"; + } else { + filename = "RECORDING_" + dateFormat.format(new Date()) + ".m4a"; + } final File parentDirectory; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { parentDirectory = diff --git a/src/main/java/eu/siacs/conversations/utils/MimeUtils.java b/src/main/java/eu/siacs/conversations/utils/MimeUtils.java index 58137ed460a432e73b4b8e8317bf07af8ede180d..102dc28e293dde72eb738efbb86a5d0a7774f976 100644 --- a/src/main/java/eu/siacs/conversations/utils/MimeUtils.java +++ b/src/main/java/eu/siacs/conversations/utils/MimeUtils.java @@ -264,7 +264,8 @@ public final class MimeUtils { add("audio/mp4", "m4a"); add("audio/mpegurl", "m3u"); add("audio/ogg", "oga"); - add("audio/opus", "opus"); + add("audio/ogg; codecs=opus", "opus"); // opus in ogg container + add("audio/opus", "opus"); // audio/opus for containerless opus add("audio/prs.sid", "sid"); add("audio/x-aiff", "aif"); add("audio/x-aiff", "aiff");