fix: bug in playback speed

This commit is contained in:
Fredrik Burmester
2026-01-03 19:49:39 +01:00
parent 4fb3fb195c
commit 4ae3c44d02
4 changed files with 20 additions and 0 deletions

View File

@@ -90,6 +90,10 @@ class VlcPlayerModule : Module() {
AsyncFunction("setVideoScaleFactor") { view: VlcPlayerView, scaleFactor: Float ->
view.setVideoScaleFactor(scaleFactor)
}
AsyncFunction("setRate") { view: VlcPlayerView, rate: Float ->
view.setRate(rate)
}
}
}
}

View File

@@ -343,6 +343,11 @@ class VlcPlayerView(context: Context, appContext: AppContext) : ExpoView(context
mediaPlayer?.scale = scaleFactor
}
fun setRate(rate: Float) {
log.debug("Setting playback rate: $rate")
mediaPlayer?.rate = rate
}
private fun setInitialExternalSubtitles() {
externalSubtitles?.let { subtitles ->
for (subtitle in subtitles) {

View File

@@ -79,6 +79,10 @@ public class VlcPlayerModule: Module {
AsyncFunction("getSubtitleTracks") { (view: VlcPlayerView) -> [[String: Any]]? in
return view.getSubtitleTracks()
}
AsyncFunction("setRate") { (view: VlcPlayerView, rate: Float) in
view.setRate(rate)
}
}
}
}

View File

@@ -433,6 +433,13 @@ class VlcPlayerView: ExpoView {
}
}
@objc func setRate(_ rate: Float) {
DispatchQueue.main.async {
self.mediaPlayer?.rate = rate
print("Set playback rate: \(rate)")
}
}
@objc func setNowPlayingMetadata(_ metadata: [String: String]) {
// Cancel any existing artwork download to prevent race conditions
artworkDownloadTask?.cancel()