diff --git a/modules/vlc-player/ios/VlcPlayerView.swift b/modules/vlc-player/ios/VlcPlayerView.swift index 07565d55..bb465a0d 100644 --- a/modules/vlc-player/ios/VlcPlayerView.swift +++ b/modules/vlc-player/ios/VlcPlayerView.swift @@ -97,6 +97,7 @@ class VlcPlayerView: ExpoView { let initType = source["initType"] as? Int ?? 0 let autoplay = source["autoplay"] as? Bool ?? false let isNetwork = source["isNetwork"] as? Bool ?? false + let startPosition = source["startPosition"] as? Int32 ?? 0 guard let uri = uri, !uri.isEmpty else { return } @@ -152,6 +153,10 @@ class VlcPlayerView: ExpoView { self.mediaPlayer?.media = media + if startPosition > 0 { + self.mediaPlayer?.time = VLCTime(int: startPosition) + } + if autoplay { self.play() } diff --git a/modules/vlc-player/src/VlcPlayer.types.ts b/modules/vlc-player/src/VlcPlayer.types.ts index bba48210..1edeb2a8 100644 --- a/modules/vlc-player/src/VlcPlayer.types.ts +++ b/modules/vlc-player/src/VlcPlayer.types.ts @@ -43,6 +43,7 @@ export type VlcPlayerSource = { autoplay?: boolean; initOptions?: any[]; mediaOptions?: { [key: string]: any }; + startPosition?: number; }; export type TrackInfo = { diff --git a/modules/vlc-player/src/VlcPlayerView.tsx b/modules/vlc-player/src/VlcPlayerView.tsx index 1893bab5..9393a92a 100644 --- a/modules/vlc-player/src/VlcPlayerView.tsx +++ b/modules/vlc-player/src/VlcPlayerView.tsx @@ -101,6 +101,10 @@ const VlcPlayerView = React.forwardRef( const processedSource: VlcPlayerSource = typeof source === "string" ? { uri: source } : source; + if (processedSource.startPosition !== undefined) { + processedSource.startPosition = Math.floor(processedSource.startPosition); + } + return (