import 'package:flutter/material.dart'; import 'package:chewie/chewie.dart'; import 'package:video_player/video_player.dart'; import 'dart:io'; class FikoYTVideoPlayer extends StatefulWidget { final String videoFilePath; FikoYTVideoPlayer({ Key? key, required this.videoFilePath, this.autoPlay = false, this.loop = false, this.showControls = false, this.showOptions = false, this.showControlsOnInitialize = false, }) : super(key: key); final bool autoPlay; final bool loop; final showOptions; final showControls; final showControlsOnInitialize; @override _FikoYTVideoPlayerState createState() => _FikoYTVideoPlayerState(); } class _FikoYTVideoPlayerState extends State { late VideoPlayerController _videoPlayerController; late ChewieController _chewieController; bool _controllerInitialized = false; @override void initState() { super.initState(); _initializeControllers(); } void _initializeControllers() { _videoPlayerController = widget.videoFilePath.startsWith("assets/") ? VideoPlayerController.asset(widget.videoFilePath) : VideoPlayerController.file(File(widget.videoFilePath)); _videoPlayerController.initialize().then((_) { setState(() { _controllerInitialized = true; }); _chewieController = ChewieController( videoPlayerController: _videoPlayerController, aspectRatio: 16 / 9, // Aspect ratio, ihtiyaca göre değiştirebilirsiniz autoInitialize: true, showOptions: false, showControls: true, showControlsOnInitialize: false, autoPlay: true, // Videoyu otomatik oynat looping: false, isLive: true, zoomAndPan: true, allowMuting: false); }); } @override void dispose() { _videoPlayerController.dispose(); _chewieController.dispose(); super.dispose(); } @override Widget build(BuildContext context) { if (!_controllerInitialized) { return Center(child: CircularProgressIndicator()); } return AspectRatio( aspectRatio: _videoPlayerController.value.aspectRatio, child: Chewie(controller: _chewieController), ); } }