From 2c9628f1f496cec8b8fccd28a9511feca3fd9b89 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Fri, 17 Mar 2023 16:24:35 +0200 Subject: [PATCH] Work on to stop playing of recording --- .../kotlin/com/tutpro/baresip/CallDetailsAdapter.kt | 11 ++++++++++- app/src/main/kotlin/com/tutpro/baresip/Utils.kt | 5 +++-- libbaresip-android | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/CallDetailsAdapter.kt b/app/src/main/kotlin/com/tutpro/baresip/CallDetailsAdapter.kt index b0e0e70e..11c8e17b 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/CallDetailsAdapter.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/CallDetailsAdapter.kt @@ -3,6 +3,7 @@ package com.tutpro.baresip import android.annotation.SuppressLint import android.content.Context import android.graphics.Typeface +import android.media.MediaPlayer import android.text.format.DateUtils import android.view.LayoutInflater import android.view.View @@ -10,6 +11,7 @@ import android.view.ViewGroup import android.widget.ArrayAdapter import android.widget.ImageView import android.widget.TextView +import androidx.core.content.ContextCompat import java.text.DateFormat import java.text.SimpleDateFormat @@ -76,8 +78,15 @@ class CallDetailsAdapter(private val ctx: Context, private val rows: ArrayList? = null viewHolder.durationView.setOnClickListener { - Utils.playRecording(ctx, recording) + if (players == null || (!players!![0].isPlaying && !players!![1].isPlaying)) { + players = Utils.playRecording(ctx, recording) + } else { + players!![0].stop() + players!![1].stop() + players = null + } } } } diff --git a/app/src/main/kotlin/com/tutpro/baresip/Utils.kt b/app/src/main/kotlin/com/tutpro/baresip/Utils.kt index 85e3abc6..b10aa1d7 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Utils.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Utils.kt @@ -995,9 +995,10 @@ object Utils { } } - fun playRecording(ctx: Context, recording: Array) { + fun playRecording(ctx: Context, recording: Array): Array { Log.d(TAG, "Playing recording $recording") val decPlayer = MediaPlayer() + val encPlayer = MediaPlayer() decPlayer.apply { setAudioAttributes( AudioAttributes.Builder() @@ -1006,7 +1007,6 @@ object Utils { .build() ) setOnPreparedListener { - val encPlayer = MediaPlayer() encPlayer.apply { setAudioAttributes( AudioAttributes.Builder() @@ -1058,6 +1058,7 @@ object Utils { Log.e(TAG, "decPlayer Exception: $e") } } + return arrayOf(encPlayer, decPlayer) } @Suppress("unused") diff --git a/libbaresip-android b/libbaresip-android index 9fe7bd92..86b8206a 160000 --- a/libbaresip-android +++ b/libbaresip-android @@ -1 +1 @@ -Subproject commit 9fe7bd929367444e24c48f9ec7c8c4c91b73e9fc +Subproject commit 86b8206a2f8b62245119098db252883f97957c11