Flutter Flex Player
Flutter Flex Player is a Flutter package for playing videos. It provides a flexible video player widget that supports various video sources including assets, network, file, and YouTube. Built with Dart and Flutter, this package allows you to integrate video playback easily into your Flutter applications.
Features
- Play videos from assets, network URLs, files, and YouTube.
- Customizable aspect ratio for video playback.
- Fullscreen mode support.
- Various player controls including play, pause, seek, volume, and playback speed.
- Stream events for initialization, position changes, duration updates, and player state.
Installation
Add flutter_flex_player
to your pubspec.yaml
file:
dependencies:
flutter:
sdk: flutter
flutter_flex_player: ^1.0.0 # Replace with the latest version
Run flutter pub get
to install the package.
Usage
Import the Package
import 'package:flutter_flex_player/flutter_flex_player.dart';
import 'package:flutter_flex_player/flutter_flex_player_controller.dart';
import 'package:flutter_flex_player/helpers/flex_player_sources.dart';
Create a Video Player Controller
FlutterFlexPlayerController _controller = FlutterFlexPlayerController();
Initialize the Video Player
In your widget's initState
, load the video source:
@override
void initState() {
super.initState();
_controller.load(
NetworkFlexPlayerSource(
"https://example.com/video.mp4",
),
autoPlay: false,
loop: true,
);
}
Build the Video Player Widget
Use the FlutterFlexPlayer
widget to display the player:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('VideoPlayerScreen'),
),
body: Column(
children: [
FlutterFlexPlayer(
_controller,
),
const SizedBox(
height: 50,
),
],
),
);
}
Classes and Methods
FlutterFlexPlayerController
load(FlexPlayerSource source, {bool autoPlay = false, bool loop = false})
: Loads a video source.play()
: Plays the video.pause()
: Pauses the video.stop()
: Stops the video.seekTo(Duration position)
: Seeks to a specific position in the video.setVolume(double volume)
: Sets the volume of the video player.setPlaybackSpeed(double speed)
: Sets the playback speed.setLooping(bool looping)
: Enables or disables looping.setMute(bool mute)
: Mutes or unmutes the video player.dispose()
: Disposes of the controller.enterFullScreen(BuildContext context)
: Enters fullscreen mode.exitFullScreen(BuildContext context)
: Exits fullscreen mode.reload()
: Reloads the current video.setQuality(String quality)
: Sets the video quality.
FlexPlayerSource
AssetFlexPlayerSource(String asset)
: Source for video assets.NetworkFlexPlayerSource(String url)
: Source for network URLs.FileFlexPlayerSource(File file)
: Source for local files.YouTubeFlexPlayerSource(String videoId, {bool isLive = false, bool useIframe = false})
: Source for YouTube videos.
Enums
-
InitializationEvent
: Represents the initialization state of the player.initializing
initialized
uninitialized
-
PlayerState
: Represents the state of the player.playing
paused
stopped
buffering
ended
Example
Check out the example
directory for a complete example of how to use flutter_flex_player
in a Flutter application.
Contributing
Feel free to contribute to this package by submitting issues or pull requests.
Contact
For any questions or feedback, please reach out to me@sunilflutter.in.