YoYo Video Player is a HLS(.m3u8) video player for flutter.

Overview

KoHtut

YoYo Video Player

YoYo Video Player is a HLS(.m3u8) video player for flutter. The video_player is a video player that allows you to select HLS video streaming by selecting the quality. YoYo Player wraps video_player under the hood and provides base architecture for developers to create their own set of UI and functionalities.

Pub Version (including pre-releases)

Features

  • You can select multiple quality and open
  • On video tap play/pause, mute/unmute, or perform any action on video.
  • Auto hide controls.
  • (.m3u8) HLS Video Streaming Support

Install & Set up

  1. Add dependency, open the root directory pubspec.yamlFile independencies:Add the following code below
yoyo_player: #latest
  1. Installation dependencies (please ignore if it has been installed automatically)
 cd Project directory
 flutter packages get
  1. Introduce the library in the page
import 'package:yoyo_player/yoyo_player.dart';

Usage

A simple usage example:

  YoYoPlayer(
          aspectRatio: 16 / 9,
          url:  "",
          videoStyle: VideoStyle(),
          videoLoadingStyle: VideoLoadingStyle(),
  ),

Change Icon

 videoStyle: VideoStyle(
    play : Icon(Icons.play_arrow),
    pause : Icon(Icons.pause),
    fullscreen : Icon(Icon(Icons.fullscreen)),
    forward : Icon(Icons.skip_next),
    backward : Icon(Icons.skip_previous),
 )

Change Video Loading

   videoLoadingStyle: VideoLoadingStyle(loading : Center(child: Text("Loading video")),

Play With Subtitle

        body: YoYoPlayer(
          aspectRatio: 16 / 9,
          //url ( .m3u8 video streaming link )
          //example ( url :"https://sfux-ext.sfux.info/hls/chapter/105/1588724110/1588724110.m3u8" )
          //example ( url :"https://player.vimeo.com/external/440218055.m3u8?s=7ec886b4db9c3a52e0e7f5f917ba7287685ef67f&oauth2_token_id=1360367101" )
          url:  " ",
          videoStyle: VideoStyle(),
          videoLoadingStyle: VideoLoadingStyle(
            loading: Center(
              child: Text("Loading video"),
            ),
          ),
        ),

Player Option

Player

Attributes Type Description
url String Video source ( .m3u8 & File only)
videoStyle VideoStyle Video Player style
videoLoadingStyle VideoLoadingStyle Video Loading Style
aspectRatio double Video AspectRaitio [aspectRatio : 16 / 9 ]
onfullscreen VideoCallback video state fullscreen
openingvideo VideoCallback video type ( eg : mkv,mp4,hls)

Player custom style (VideoStyle)

Attributes Type Description
play Widget You can use any Widget you want
pause Widget You can use any Widget you want
fullscreen Widget You can use any Widget you want
forward Widget You can use any Widget you want
backward Widget You can use any Widget you want
playedColor Color You can use any Icon style you want
qualitystyle TextStyle You can use any Text style you want
qashowstyle TextStyle You can use any Text style you want

Player Loading custom style (VideoStyle)

Attributes Type Description
loading Widget You can use any loading style you want

How is it created ?

  • The data in the source url (m3u8) is regex checked and the child m3u8 files are created and saved according to the respective rules.
  • It starts creating child m3u8 files as soon as the video starts playing
  • Each time a video is completed or the main url changes, child m3u8 files are checked and deleted.

The child m3u8 files are created as follows:

  • If viedo quality yoyo[vido-quality].m3u8

  • If video quality & audio quality yoyo[video-quality][audio-quality].m3u8

Support M3U8

  • #EXT-X-MEDIA
  • #EXT-X-STREAM-INF(not for ios)

Player Screenshot

Contributors

  • Min Si Thu
  • Ko Htut

MIT License

Copyright (c) 2020 Ko Htut (Ko Min Than Htut)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

You might also like...

Alexander-Playlist - A media player and playlist based on Flutter

Alexander-Playlist - A media player and playlist based on Flutter

Alexander's App - silexcorp A new Flutter application. http://alexandermateo.com/ Config Firebase Configure firebase to your project. Screenshot | | |

Nov 8, 2021

Just another tape player has been written in Flutter for iOS and Android

Just another tape player has been written in Flutter for iOS and Android

Just another tape player has been written in Flutter for iOS and Android. The application is able to find tapes and theirs images using https://zxInfo.dk public API and upload them to ZX-Spectrum compatible computers by the audio output of the smartphone. Now it supports TAP and TZX tape images only.

Dec 28, 2022

Flutter UI Challenge: Music Player

Flutter UI Challenge: Music Player

Flutter UI Challenge: Music Player Resource Design: https://dribbble.com Output

Dec 23, 2022

A radio player mobile application which streams audio from Radio Sai Global Harmony.

A radio player mobile application which streams audio from Radio Sai Global Harmony.

Sai Voice A radio player which streams audio from Radio Sai Global Harmony. *Special Thanks to Aman Achutan for the logo Om Sri Sai Ram 🙏 Sai Voice i

Nov 26, 2022

In this video, we learn how to do integrate Google Admob with Flutter with latest Flutter 2.0 Google Admob Package.

In this video, we learn how to do integrate Google Admob with Flutter with latest Flutter 2.0 Google Admob Package.

💰 Monetizing Flutter apps with Google AdMob 💰 In this video, we learn how to do integrate Google Admob with Flutter with latest Flutter 2.0 Google A

Nov 30, 2022

Flutter WebRTC demo with Python server to perform image processing on video frames using OpenCV

flutter + webrtc = python + aiortc + opencv This demo project should help you to get setup sending a video feed from a flutter app to a python backen

Dec 29, 2022

🎞 Flutter media playback, broadcast & recording library for Windows, Linux & macOS. Written in C++ using libVLC & libVLC++. (Both audio & video)

🎞 Flutter media playback, broadcast & recording library for Windows, Linux & macOS. Written in C++ using libVLC & libVLC++. (Both audio & video)

dart_vlc Flutter media playback, broadcast, recording & chromecast library for Windows, Linux & macOS. Written in C++ using libVLC & libVLC++. Install

Dec 29, 2022

Caffodils - Download everything | Flutter app for Android and IOS. Download Video, Reels, Shorts, Music, Images, Files from Instagram, Facebook and Youtube

caffodils Caffodils - Download everything Flutter app for Android and IOS. Download Video, Reels, Shorts, Music, Images, Files from Instagram, Faceboo

Oct 24, 2022

Flutter Video Conferencing SDK & Sample App

Flutter Video Conferencing SDK & Sample App

100ms Flutter SDK 🎉 Here you will find everything you need to build experiences with video using 100ms iOS/Android SDK. Dive into our SDKs, quick sta

Dec 22, 2022
Comments
  • Solve some bugs and typos

    Solve some bugs and typos

    I found many problems with the icons and style of the video player and I solved Also, I rewrite some variables and methods' names to make more sense when you read it.

    opened by Abdelazeem777 0
  • Ido

    Ido

    https://vkvd84.mycdn.me/video.m3u8?srcIp=73.32.45.82&expires=1657028562075&srcAg=SAFARI_MAC&fromCache=1&ms=45.136.22.174&mid=3427943589982&type=4&sig=ymWzjINN7o0&ct=8&urls=45.136.20.181&clientType=13&cmd=videoPlayerCdn&id=2499789392478

    opened by royasadi 0
  • yoyo_player not compatible with firebase_auth ^3.3.3

    yoyo_player not compatible with firebase_auth ^3.3.3

    Yoyo player is not installing please refer to the following error

    Main Context

    Because no versions of firebase_auth match >3.3.6 <4.0.0 and firebase_auth >=3.3.3 <3.3.4 depends on firebase_auth_web ^3.3.4, firebase_auth >=3.3.3 <3.3.4-∞ or >3.3.6 <4.0.0 requires firebase_auth_web ^3.3.4. And because firebase_auth >=3.3.4 <3.3.5 depends on firebase_auth_web ^3.3.5 and firebase_auth >=3.3.5 <3.3.6 depends on firebase_auth_web ^3.3.6, firebase_auth >=3.3.3 <3.3.6-∞ or >3.3.6 <4.0.0 requires firebase_auth_web ^3.3.4. And because firebase_auth 3.3.6 depends on firebase_auth_web ^3.3.7 which depends on http_parser ^4.0.0, firebase_auth ^3.3.3 requires http_parser ^4.0.0 or firebase_auth_web ^3.3.7. And because no versions of firebase_auth_web match >3.3.7 <4.0.0 and firebase_auth_web 3.3.7 depends on http_parser ^4.0.0, firebase_auth ^3.3.3 requires http_parser ^4.0.0. And because every version of yoyo_player depends on http ^0.12.2 which depends on http_parser >=0.0.1 <4.0.0, firebase_auth ^3.3.3 is incompatible with yoyo_player. So, because befa_app depends on both firebase_auth ^3.3.3 and yoyo_player any, version solving failed. pub get failed (1; So, because befa_app depends on both firebase_auth ^3.3.3 and yoyo_player any, version solving failed.)

    opened by ngeyen 0
  • depends on path_provider 2.0.0

    depends on path_provider 2.0.0

    Because yoyo_player 0.1.0 depends on path_provider ^1.6.21 and no versions of yoyo_player match >0.1.0 <0.2.0, yoyo_player ^0.1.0 requires path_provider ^1.6.21.
    So, because ... depends on both yoyo_player ^0.1.0 and path_provider ^2.0.0, version solving failed.
    
    opened by ghost 2
Releases(stable)
Owner
Ko Htut
Senior Mobile Developer
Ko Htut
Video player-2.2.10 - A Flutter plugin for iOS, Android and Web for playing back video on a Widget surface

Video Player plugin for Flutter A Flutter plugin for iOS, Android and Web for pl

null 2 Sep 29, 2022
Generate a new file by compressed video, and provide metadata. Get video thumbnail from a video path, supports JPEG/GIF. To reduce app size not using FFmpeg in IOS.

flutter_video_compress Generate a new path by compressed video, Choose to keep the source video or delete it by a parameter. Get video thumbnail from

天海るり 179 Dec 8, 2022
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.5k Jan 8, 2023
Better video player for Flutter, with multiple configuration options. Solving typical use cases!

Better Player Advanced video player based on video_player and Chewie. It's solves many typical use cases and it's easy to run. Introduction This plugi

Jakub 733 Jan 3, 2023
Flutter video player widget based on video_player

Neeko Simple video player widget based on video_player. Neek supports more actions such as timeline control, toggle fullscreen and so on. Note: This p

OpenFlutter 70 Oct 20, 2022
null 357 Dec 27, 2022
Real short video app with firebase and pixels API.Where you can create a short video with pixels' stock videos and also merge your audio.

Flutter Short Videos Platform Short videos platform with Flutter and Firebase. About Real short video app with firebase and pixels API.Where you can c

Ansh rathod 55 Dec 26, 2022
Android app to show movie ratings when browsing Netflix, Amazon Prime Video and other supported video streaming apps on the phone

Flutter - Movie Ratings You can get the latest Playstore version here on Playstore - or download directly - 0.4.5 Screenshots of master Search Page Fa

Jay Rambhia 71 Nov 23, 2022
A music player component for Flutter

This is an example I currently have no plans of putting this on Pub. Originally, I did, but I lost interest. However, I think this is a good example,

Tobe Osakwe 215 Dec 12, 2022
Flutter Radio Player, A Plugin to handle streaming audio without a hassle

Flutter radio plugin handles a single streaming media preciously. This plugin was developed with maximum usage in mind. Flutter Radio player enables S

Sithira Munasinghe 104 Dec 27, 2022