声音播放

This commit is contained in:
fengge 2026-07-24 12:02:55 +08:00
parent 5f09d0646f
commit 7376b902e9
1 changed files with 23 additions and 15 deletions

View File

@ -537,7 +537,7 @@ class AndroidInterface(private val activity: MainActivity) {
fun playAlert(count: Int, volume: Float) { fun playAlert(count: Int, volume: Float) {
Handler(Looper.getMainLooper()).post { Handler(Looper.getMainLooper()).post {
try { try {
stopAlert() realStopAlert()
alertPlayCount = 0 alertPlayCount = 0
alertPlayer = android.media.MediaPlayer.create(activity, R.raw.pull_alert).apply { alertPlayer = android.media.MediaPlayer.create(activity, R.raw.pull_alert).apply {
setVolume(volume, volume) setVolume(volume, volume)
@ -549,10 +549,10 @@ class AndroidInterface(private val activity: MainActivity) {
it.start() it.start()
} catch (e: Exception) { } catch (e: Exception) {
Timber.tag("AlertPlayer").e(e, "Error repeating alert play") Timber.tag("AlertPlayer").e(e, "Error repeating alert play")
stopAlert() realStopAlert()
} }
} else { } else {
stopAlert() realStopAlert()
} }
} }
start() start()
@ -565,7 +565,16 @@ class AndroidInterface(private val activity: MainActivity) {
} }
fun stopAlert() { fun stopAlert() {
if (Looper.myLooper() == Looper.getMainLooper()) {
realStopAlert()
} else {
Handler(Looper.getMainLooper()).post { Handler(Looper.getMainLooper()).post {
realStopAlert()
}
}
}
private fun realStopAlert() {
try { try {
alertPlayer?.let { player -> alertPlayer?.let { player ->
if (player.isPlaying) { if (player.isPlaying) {
@ -580,4 +589,3 @@ class AndroidInterface(private val activity: MainActivity) {
} }
} }
} }
}