(
getCurrentAudioTrack: async () => {
return await nativeRef.current?.getCurrentAudioTrack();
},
+ // Video scaling
+ setZoomedToFill: async (zoomed: boolean) => {
+ await nativeRef.current?.setZoomedToFill(zoomed);
+ },
+ isZoomedToFill: async () => {
+ return await nativeRef.current?.isZoomedToFill();
+ },
}));
return ;
diff --git a/modules/mpv-player/src/MpvPlayerView.web.tsx b/modules/mpv-player/src/MpvPlayerView.web.tsx
index 323f4341..dc322ad7 100644
--- a/modules/mpv-player/src/MpvPlayerView.web.tsx
+++ b/modules/mpv-player/src/MpvPlayerView.web.tsx
@@ -1,14 +1,14 @@
import { MpvPlayerViewProps } from "./MpvPlayer.types";
export default function MpvPlayerView(props: MpvPlayerViewProps) {
- const url = props.source?.url;
+ const url = props.source?.url ?? "";
return (
);
diff --git a/modules/sf-player/android/build.gradle b/modules/sf-player/android/build.gradle
deleted file mode 100644
index 5ebe4434..00000000
--- a/modules/sf-player/android/build.gradle
+++ /dev/null
@@ -1,71 +0,0 @@
-apply plugin: 'com.android.library'
-apply plugin: 'kotlin-android'
-apply plugin: 'maven-publish'
-
-group = 'expo.modules.sfplayer'
-version = '1.0.0'
-
-buildscript {
- def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
- if (expoModulesCorePlugin.exists()) {
- apply from: expoModulesCorePlugin
- applyKotlinExpoModulesCorePlugin()
- }
-}
-
-afterEvaluate {
- publishing {
- publications {
- release(MavenPublication) {
- from components.release
- }
- }
- repositories {
- maven {
- url = mavenLocal().url
- }
- }
- }
-}
-
-android {
- compileSdkVersion safeExtGet("compileSdkVersion", 34)
-
- def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION
- if (agpVersion.tokenize('.')[0].toInteger() < 8) {
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_11
- targetCompatibility JavaVersion.VERSION_11
- }
-
- kotlinOptions {
- jvmTarget = JavaVersion.VERSION_11.majorVersion
- }
- }
-
- namespace "expo.modules.sfplayer"
- defaultConfig {
- minSdkVersion safeExtGet("minSdkVersion", 23)
- targetSdkVersion safeExtGet("targetSdkVersion", 34)
- }
- lintOptions {
- abortOnError false
- }
- publishing {
- singleVariant("release") {
- withSourcesJar()
- }
- }
-}
-
-repositories {
- mavenCentral()
-}
-
-dependencies {
- implementation project(':expo-modules-core')
-}
-
-def safeExtGet(prop, fallback) {
- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
-}
diff --git a/modules/sf-player/android/src/main/AndroidManifest.xml b/modules/sf-player/android/src/main/AndroidManifest.xml
deleted file mode 100644
index a2f47b60..00000000
--- a/modules/sf-player/android/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/modules/sf-player/android/src/main/java/expo/modules/sfplayer/SfPlayerModule.kt b/modules/sf-player/android/src/main/java/expo/modules/sfplayer/SfPlayerModule.kt
deleted file mode 100644
index 49f4a7fa..00000000
--- a/modules/sf-player/android/src/main/java/expo/modules/sfplayer/SfPlayerModule.kt
+++ /dev/null
@@ -1,120 +0,0 @@
-package expo.modules.sfplayer
-
-import expo.modules.kotlin.modules.Module
-import expo.modules.kotlin.modules.ModuleDefinition
-
-class SfPlayerModule : Module() {
- override fun definition() = ModuleDefinition {
- Name("SfPlayer")
-
- View(SfPlayerView::class) {
- Prop("source") { view: SfPlayerView, source: Map? ->
- // Android stub - KSPlayer is iOS only
- }
-
- AsyncFunction("play") { view: SfPlayerView ->
- }
-
- AsyncFunction("pause") { view: SfPlayerView ->
- }
-
- AsyncFunction("seekTo") { view: SfPlayerView, position: Double ->
- }
-
- AsyncFunction("seekBy") { view: SfPlayerView, offset: Double ->
- }
-
- AsyncFunction("setSpeed") { view: SfPlayerView, speed: Double ->
- }
-
- AsyncFunction("getSpeed") { view: SfPlayerView ->
- 1.0
- }
-
- AsyncFunction("isPaused") { view: SfPlayerView ->
- true
- }
-
- AsyncFunction("getCurrentPosition") { view: SfPlayerView ->
- 0.0
- }
-
- AsyncFunction("getDuration") { view: SfPlayerView ->
- 0.0
- }
-
- AsyncFunction("startPictureInPicture") { view: SfPlayerView ->
- }
-
- AsyncFunction("stopPictureInPicture") { view: SfPlayerView ->
- }
-
- AsyncFunction("isPictureInPictureSupported") { view: SfPlayerView ->
- false
- }
-
- AsyncFunction("isPictureInPictureActive") { view: SfPlayerView ->
- false
- }
-
- AsyncFunction("getSubtitleTracks") { view: SfPlayerView ->
- emptyList