From be5a60dc7782d58a7494eb7b8c7e45b877af92c4 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Thu, 9 Feb 2023 10:44:26 +0100 Subject: [PATCH] avoid IllegalStateException for ChatController#stopMediaPlayer didn't see this crash here, but it might have happened similar to b29fccac where it happened. Signed-off-by: Marcel Hibbe --- .../nextcloud/talk/controllers/ChatController.kt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt index 765b986f2..a8eab8259 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt @@ -1036,9 +1036,18 @@ class ChatController(args: Bundle) : mediaPlayerHandler.removeCallbacksAndMessages(null) - mediaPlayer?.stop() - mediaPlayer?.release() - mediaPlayer = null + try { + mediaPlayer?.let { + if (it.isPlaying) { + it.stop() + } + } + } catch (e: IllegalStateException) { + Log.e(TAG, "mediaPlayer was not initialized", e) + } finally { + mediaPlayer?.release() + mediaPlayer = null + } } override fun updateMediaPlayerProgressBySlider(messageWithSlidedProgress: ChatMessage, progress: Int) { @@ -3426,6 +3435,7 @@ class ChatController(args: Bundle) : private const val VOICE_RECORD_CANCEL_SLIDER_X: Int = -50 private const val VOICE_MESSAGE_META_DATA = "{\"messageType\":\"voice-message\"}" private const val VOICE_MESSAGE_FILE_SUFFIX = ".mp3" + // Samplingrate 22050 was chosen because somehow 44100 failed to playback on safari when recorded on android. // Please test with firefox, chrome, safari and mobile clients if changing anything regarding the sound. private const val VOICE_MESSAGE_SAMPLING_RATE = 22050