mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-15 03:07:53 +02:00
feat: Implement Xtream Codes IPTV streaming, VOD transcoding, and content browsing UI with a dedicated web player.
This commit is contained in:
1 parent
6d69617e40
commit
3f9a88c09a
4 files changed
+142
-21
No files matched your search
@@ -149,9 +149,24 @@ class _MoviesTabState extends ConsumerState<MoviesTab> {
|
||||
return originalUrl;
|
||||
}
|
||||
|
||||
void _playMovie(Movie movie) {
|
||||
Future<void> _playMovie(Movie movie) async {
|
||||
ref.read(watchHistoryProvider.notifier).markMovieWatched(movie.streamId);
|
||||
|
||||
// Fetch actual duration from API if not available in movie data
|
||||
Duration? movieDuration;
|
||||
if (movie.durationSecs != null && movie.durationSecs! > 0) {
|
||||
movieDuration = Duration(seconds: movie.durationSecs!);
|
||||
} else {
|
||||
// Try to fetch from API
|
||||
final service = ref.read(xtreamServiceProvider(widget.playlist));
|
||||
final durationSecs = await service.getVodDuration(movie.streamId);
|
||||
if (durationSecs != null && durationSecs > 0) {
|
||||
movieDuration = Duration(seconds: durationSecs);
|
||||
}
|
||||
}
|
||||
|
||||
if (!mounted) return;
|
||||
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
@@ -161,7 +176,7 @@ class _MoviesTabState extends ConsumerState<MoviesTab> {
|
||||
playlist: widget.playlist,
|
||||
streamType: StreamType.vod,
|
||||
containerExtension: movie.containerExtension ?? 'mp4',
|
||||
duration: movie.durationSecs != null ? Duration(seconds: movie.durationSecs!) : null,
|
||||
duration: movieDuration,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user