tablet-app/lib/Screens/Video/video_view.dart
2023-01-25 18:50:42 +01:00

86 lines
2.5 KiB
Dart

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:manager_api/api.dart';
import 'package:tablet_app/constants.dart';
import 'package:youtube_player_iframe/youtube_player_iframe.dart';
//import 'package:youtube_player_flutter/youtube_player_flutter.dart';
class VideoViewWidget extends StatefulWidget {
final SectionDTO? section;
VideoViewWidget({this.section});
@override
_VideoViewWidget createState() => _VideoViewWidget();
}
class _VideoViewWidget extends State<VideoViewWidget> {
YoutubePlayer? _videoView;
VideoDTO? videoDTO;
@override
void initState() {
print(widget.section!.data);
videoDTO = VideoDTO.fromJson(jsonDecode(widget.section!.data!));
print(videoDTO);
String? videoId;
if (videoDTO!.source_ != null && videoDTO!.source_!.length > 0 ) {
//videoId = YoutubePlayer.convertUrlToId(videoDTO!.source_!);
final _controller = YoutubePlayerController(
params: YoutubePlayerParams(
mute: false,
showControls: true,
showFullscreenButton: false,
showVideoAnnotations: false,
strictRelatedVideos: true,
pointerEvents: PointerEvents.auto
),
);
_controller.loadVideo(videoDTO!.source_!);//.loadVideoById(videoId: "3vBwRfQbXkg"); // Auto Play
// If the requirement is just to play a single video.
/*final _controller = YoutubePlayerController.fromVideoId(
videoId: '<video-id>',
autoPlay: false,
params: const YoutubePlayerParams(showFullscreenButton: true),
);*/
/*YoutubePlayerController _controller = YoutubePlayerController(
initialVideoId: videoId!,
flags: YoutubePlayerFlags(
autoPlay: true,
controlsVisibleAtStart: false,
loop: true,
hideControls: false,
hideThumbnail: false,
),
);*/
_videoView = YoutubePlayer(
controller: _controller,
//showVideoProgressIndicator: false,
/*progressIndicatorColor: Colors.amber,
progressColors: ProgressBarColors(
playedColor: Colors.amber,
handleColor: Colors.amberAccent,
),*/
);
}
super.initState();
}
@override
void dispose() {
_videoView = null;
super.dispose();
}
@override
Widget build(BuildContext context) => videoDTO!.source_ != null && videoDTO!.source_!.length > 0 ?
_videoView! :
Center(child: Text("La vidéo ne peut pas être affichée, l'url est incorrecte", style: new TextStyle(fontSize: kNoneInfoOrIncorrect)));
}