import 'dart:convert'; import 'package:SEFER/constant/links.dart'; import 'package:SEFER/controller/functions/crud.dart'; import 'package:SEFER/print.dart'; import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:get/get.dart'; import 'package:video_player/video_player.dart'; class VideoController extends GetxController { var videos = []; var isLoading = true.obs; final String apiUrl = '${AppLink.seferCairoServer}/ride/videos_driver/get.php'; @override void onInit() { fetchVideos(); super.onInit(); } late VideoPlayerController videoPlayerController; // Initialize the video player with the provided URL Future initializeVideo(String videoUrl) async { videoPlayerController = VideoPlayerController.networkUrl(Uri.parse(videoUrl)); await videoPlayerController.initialize(); videoPlayerController .setLooping(true); // Set to true if you want the video to loop update(); // Update the UI after the video has been initialized } // Play the video void play() { videoPlayerController.play(); update(); } // Pause the video void pause() { videoPlayerController.pause(); update(); } @override void onClose() { videoPlayerController .dispose(); // Dispose of the video player controller when not in use super.onClose(); } void fetchVideos() async { try { var res = await CRUD().get(link: apiUrl, payload: {}); if (res != 'failure') { videos = jsonDecode(res)['message']; // Log.print('videos: ${videos}'); update(); } else { mySnackeBarError(''); } } catch (e) { mySnackeBarError(e.toString()); } finally { isLoading(false); } } }