Home

Awesome

flutter_meedu_videoplayer

<a href="https://www.buymeacoffee.com/zezo357" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a> <a href='https://ko-fi.com/zezo357' target='_blank'><img height='35' style='border:0px;height:46px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com' />

<a target="blank" href="https://pub.dev/packages/flutter_meedu_videoplayer"><img src="https://img.shields.io/pub/v/flutter_meedu_videoplayer?include_prereleases&style=flat-square"/></a> <img src="https://img.shields.io/github/last-commit/abdelaziz-mahdy/flutter_meedu_videoplayer/master?style=flat-square"/> <img src="https://img.shields.io/github/license/abdelaziz-mahdy/flutter_meedu_videoplayer?style=flat-square"/>

Cross-Platform Video Player

We have implemented a cross-platform video player, which provides a seamless video playback experience.

👋 👉 <b>Complete documentation here</b>

<table> <caption><h4><a href="https://abdelaziz-mahdy.github.io/flutter_meedu_videoplayer_example/">Flutter Web Demo</a></h4></caption> <tbody> <tr> <td rowspan="2"><img src="https://abdelaziz-mahdy.github.io/flutter_meedu_videoplayer/assets/q2.gif" alt="meedu_player" width="160" /></td> <td><img src="https://abdelaziz-mahdy.github.io/flutter_meedu_videoplayer/assets/full.gif" alt="meedu_player" width="300" /></td> </tr> <tr> <td><img src="https://abdelaziz-mahdy.github.io/flutter_meedu_videoplayer/assets/playing_video.png" alt="meedu_player" width="300" /></td> </tr> </tbody> </table> <table> <thead> <tr> <th>Feature</th> <th>iOS</th> <th>Android</th> <th>Windows</th> <th>Linux</th> <th>macOS</th> <th>Web</th> </tr> </thead> <tbody> <tr> <td>Videos from Network</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> </tr> <tr> <td>Videos from Assets</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> </tr> <tr> <td>Videos from Local Files</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> </tr> <tr> <td>Looping</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> </tr> <tr> <td>AutoPlay</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> </tr> <tr> <td>Swipe to Control Volume</td> <td>✔️</td> <td>✔️</td> <td>Keyboard Arrows</td> <td>Keyboard Arrows</td> <td>Keyboard Arrows</td> <td>Keyboard Arrows</td> </tr> <tr> <td>Swipe to Seek</td> <td>✔️</td> <td>✔️</td> <td>Keyboard Arrows</td> <td>Keyboard Arrows</td> <td>Keyboard Arrows</td> <td>Keyboard Arrows</td> </tr> <tr> <td>FullScreen</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> </tr> <tr> <td>Launch Player in FullScreen</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> </tr> <tr> <td>Playback Speed</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> </tr> <tr> <td>Fast Forward/Rewind</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> </tr> <tr> <td>SRT Subtitles</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> <td>✔️</td> </tr> <tr> <td>Customization</td> <td>Partially</td> <td>Partially</td> <td>Partially</td> <td>Partially</td> <td>Partially</td> <td>Partially</td> </tr> <tr> <td>Picture in Picture (PIP)</td> <td>Not Implemented (Help Wanted)</td> <td>✔️</td> <td>✔️</td> <td>Implemented (Not tested)</td> <td>Implemented (Crashes, waiting for window_manager release, fixed in GitHub)</td> <td>Not Implemented</td> </tr> </tbody> </table>

Video Player Controls

Mobile Controls

Desktop Controls

Initialize

void main() {
  initMeeduPlayer();
  runApp(MyApp());
}

Android (replace original video_player with fvp one)

  1. Just add this package and set androidUseFVP to true in initMeeduPlayer

iOS (replace original video_player with fvp one)

  1. Just add this package in case you set iosUseFVP to true in initMeeduPlayer

hls on web

Add to pubspec.yaml

  video_player_web_hls: ^1.0.0+3

Add

<script
  src="https://cdn.jsdelivr.net/npm/hls.js@latest"
  type="application/javascript"
></script>

in index.html above

<script src="main.dart.js" type="application/javascript"></script>

or above

<script src="flutter.js" defer></script>