import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:manager_api/api.dart'; import 'package:tablet_app/constants.dart'; import 'package:youtube_player_flutter/youtube_player_flutter.dart'; import 'package:youtube_player_iframe/youtube_player_iframe.dart' as iframe; //import 'package:youtube_player_flutter/youtube_player_flutter.dart'; class VideoView extends StatefulWidget { final SectionDTO? section; VideoView({this.section}); @override _VideoView createState() => _VideoView(); } class _VideoView extends State { iframe.YoutubePlayer? _videoViewWeb; 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_!); if (true) { final _controllerWeb = iframe.YoutubePlayerController( params: iframe.YoutubePlayerParams( mute: false, showControls: true, showFullscreenButton: false, loop: true, showVideoAnnotations: false, strictRelatedVideos: false, enableKeyboard: false, enableCaption: false, pointerEvents: iframe.PointerEvents.auto ), ); _controllerWeb.loadVideo(videoDTO!.source_!); _videoViewWeb = iframe.YoutubePlayer( controller: _controllerWeb, //showVideoProgressIndicator: false, /*progressIndicatorColor: Colors.amber, progressColors: ProgressBarColors( playedColor: Colors.amber, handleColor: Colors.amberAccent, ),*/ ); } else { videoId = YoutubePlayer.convertUrlToId(videoDTO!.source_!); 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; _videoViewWeb = null; super.dispose(); } @override Widget build(BuildContext context) => videoDTO!.source_ != null && videoDTO!.source_!.length > 0 ? (true ? _videoViewWeb! : _videoView!): Center(child: Text("La vidéo ne peut pas être affichée, l'url est incorrecte", style: new TextStyle(fontSize: kNoneInfoOrIncorrect))); }