69 lines
1.7 KiB
Dart
69 lines
1.7 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:SEFER/constant/links.dart';
|
|
import 'package:SEFER/controller/functions/crud.dart';
|
|
import 'package:SEFER/print.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<void> 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 {
|
|
Get.snackbar('Error'.tr, '');
|
|
}
|
|
} catch (e) {
|
|
Get.snackbar("Error", e.toString());
|
|
} finally {
|
|
isLoading(false);
|
|
}
|
|
}
|
|
}
|