Video Player plugin for Flutter

pub package

A Flutter plugin for iOS and Android for playing back video on a Widget surface.

The example app running in iOS

Note: This plugin is still under development, and some APIs might not be available yet. Feedback welcome and Pull Requests are most welcome!


First, add video_player as a dependency in your pubspec.yaml file.


Add the following entry to your Info.plist file, located in <project root>/ios/Runner/Info.plist:


This entry allows your app to access video files by URL.


Ensure the following permission is present in your Android Manifest file, located in `/android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET"/>

The Flutter project template adds it, so it may already be there.


class _MyHomePageState extends State<MyHomePage> {
  VideoPlayerController _controller;
  bool _isPlaying = false;

  void initState() {
    _controller = new
      ..addListener(() {
        final bool isPlaying = _controller.value.isPlaying;
        if (isPlaying != _isPlaying) {
          setState(() {
            _isPlaying = isPlaying;

  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text(widget.title),
      body: new Center(
        child: new Padding(
          padding: const EdgeInsets.all(10.0),
          child: new AspectRatio(
            aspectRatio: 1280 / 720,
            child: new VideoPlayer(_controller),
      floatingActionButton: new FloatingActionButton(
            _controller.value.isPlaying ? _controller.pause :,
        child: new Icon(
          _controller.value.isPlaying ? Icons.pause : Icons.play_arrow,