mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 12:09:45 +01:00
avoid IOException for ChatController#initMediaPlayer
Exception java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:558) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:936) Caused by java.lang.reflect.InvocationTargetException: at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548) Caused by java.io.IOException: Prepare failed.: status=0x1 at android.media.MediaPlayer._prepare at android.media.MediaPlayer.prepare (MediaPlayer.java:1309) at com.nextcloud.talk.controllers.ChatController.initMediaPlayer (ChatController.kt:1023) at com.nextcloud.talk.controllers.ChatController.startPlayback (ChatController.kt:981) at com.nextcloud.talk.controllers.ChatController.access$startPlayback (ChatController.kt:219) at com.nextcloud.talk.controllers.ChatController$downloadFileToCache$1.invoke (ChatController.kt:1111) at com.nextcloud.talk.controllers.ChatController$downloadFileToCache$1.invoke (ChatController.kt:1109) at com.nextcloud.talk.controllers.ChatController.downloadFileToCache$lambda$18 (ChatController.kt:1109) at com.nextcloud.talk.controllers.ChatController.$r8$lambda$6crsUAwqqfwhlukFd40yEwEwluI at com.nextcloud.talk.controllers.ChatController$$ExternalSyntheticLambda9.onChanged at androidx.lifecycle.LiveData.considerNotify (LiveData.java:133) at androidx.lifecycle.LiveData.dispatchingValue (LiveData.java:151) at androidx.lifecycle.LiveData.setValue (LiveData.java:309) at androidx.lifecycle.MutableLiveData.setValue (MutableLiveData.java:50) at androidx.lifecycle.LiveData$1.run (LiveData.java:93) at android.os.Handler.handleCallback (Handler.java:942) at android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper.loopOnce (Looper.java:201) at android.os.Looper.loop (Looper.java:288) at android.app.ActivityThread.main (ActivityThread.java:7872) Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
be5a60dc77
commit
332b856cfe
@ -1004,6 +1004,7 @@ class ChatController(args: Bundle) :
|
||||
adapter?.update(message)
|
||||
}
|
||||
|
||||
@Suppress("Detekt.TooGenericExceptionCaught")
|
||||
private fun initMediaPlayer(message: ChatMessage) {
|
||||
if (message != currentlyPlayedVoiceMessage) {
|
||||
currentlyPlayedVoiceMessage?.let { stopMediaPlayer(it) }
|
||||
@ -1012,15 +1013,22 @@ class ChatController(args: Bundle) :
|
||||
if (mediaPlayer == null) {
|
||||
val fileName = message.selectedIndividualHashMap!!["name"]
|
||||
val absolutePath = context.cacheDir.absolutePath + "/" + fileName
|
||||
mediaPlayer = MediaPlayer().apply {
|
||||
setDataSource(absolutePath)
|
||||
prepare()
|
||||
}
|
||||
currentlyPlayedVoiceMessage = message
|
||||
message.voiceMessageDuration = mediaPlayer!!.duration / VOICE_MESSAGE_SEEKBAR_BASE
|
||||
|
||||
mediaPlayer!!.setOnCompletionListener {
|
||||
stopMediaPlayer(message)
|
||||
try {
|
||||
mediaPlayer = MediaPlayer().apply {
|
||||
setDataSource(absolutePath)
|
||||
prepare()
|
||||
}
|
||||
|
||||
currentlyPlayedVoiceMessage = message
|
||||
message.voiceMessageDuration = mediaPlayer!!.duration / VOICE_MESSAGE_SEEKBAR_BASE
|
||||
|
||||
mediaPlayer!!.setOnCompletionListener {
|
||||
stopMediaPlayer(message)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "failed to initialize mediaPlayer", e)
|
||||
Toast.makeText(context, R.string.nc_common_error_sorry, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
} else {
|
||||
Log.e(TAG, "mediaPlayer was not null. This should not happen!")
|
||||
|
Loading…
Reference in New Issue
Block a user