Move speed setting to play() & fix auto-play on Android api 27+

This commit is contained in:
hasinarak3@gmail.com 2026-02-18 09:36:09 +03:00
parent 86d6de7796
commit 84a9626b08

View file

@ -34,20 +34,11 @@ actual class FMediaPlayer actual constructor(val filename: String, onFinished: (
if (file.exists()) { if (file.exists()) {
val fis = FileInputStream(file) val fis = FileInputStream(file)
mediaPlayer?.setDataSource(fis.fd) mediaPlayer?.setDataSource(fis.fd)
mediaPlayer?.setOnPreparedListener { mp ->
// Ici, le player est prêt sans avoir bloqué l'UI
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
val params = mp.playbackParams ?: android.media.PlaybackParams()
params.speed = 1.0f
mp.playbackParams = params
}
mp.pause()
}
mediaPlayer?.prepareAsync()
mediaPlayer?.setOnCompletionListener { mediaPlayer?.setOnCompletionListener {
onFinished() onFinished()
} }
mediaPlayer?.prepareAsync()
fis.close() fis.close()
} }
} catch (e: Exception) { } catch (e: Exception) {
@ -57,7 +48,21 @@ actual class FMediaPlayer actual constructor(val filename: String, onFinished: (
} }
actual fun play() { actual fun play() {
mediaPlayer?.start() mediaPlayer?.let { mp ->
if (!mp.isPlaying) {
// Ici, le player est prêt sans avoir bloqué l'UI
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
try {
val params = mp.playbackParams ?: android.media.PlaybackParams()
params.speed = 1.0f
mp.playbackParams = params
} catch (e: Exception) {
e.printStackTrace()
}
}
mp.start()
}
}
} }
actual fun pause() { actual fun pause() {
mediaPlayer?.pause() mediaPlayer?.pause()