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 { 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: '', 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))); }