Flutter video player widget based on video_player

Overview

Neeko pub package

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

Note: This plugin is still under development. Pull Requests are most welcome.

Installation

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

iOS

Warning: The video player is not functional on iOS simulators. An iOS device must be used during development/testing.

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

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>

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

Android

Ensure the following permission is present in your Android Manifest file, located in <project root>/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.

Example

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

//  static const String beeUri = 'https://media.w3.org/2010/05/sintel/trailer.mp4';
  static const String beeUri =
      'http://vfx.mtime.cn/Video/2019/03/09/mp4/190309153658147087.mp4';


  final VideoControllerWrapper videoControllerWrapper = VideoControllerWrapper(
      DataSource.network(
          'http://vfx.mtime.cn/Video/2019/03/09/mp4/190309153658147087.mp4',
          displayName: "displayName"));

  @override
  void initState() {
    super.initState();
    SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
  }

  @override
  void dispose() {
    SystemChrome.restoreSystemUIOverlays();
    super.dispose();
  }

  

  @override
  Widget build(BuildContext context) {
  
    return Scaffold(
      body: NeekoPlayerWidget(
        onSkipPrevious: () {
          print("skip");
          videoControllerWrapper.prepareDataSource(DataSource.network(
              "http://vfx.mtime.cn/Video/2019/03/12/mp4/190312083533415853.mp4",
              displayName: "This house is not for sale"));
        },
        videoControllerWrapper: videoControllerWrapper,
        actions: <Widget>[
          IconButton(
              icon: Icon(
                Icons.share,
                color: Colors.white,
              ),
              onPressed: () {
                print("share");
              })
        ],
      ),
    );
  }
}

Thanks

LICENSE


Copyright (c) 2019 Neeko Contributors

Neeko is licensed under the Mulan PSL v1.

You can use this software according to the terms and conditions of the Mulan PSL v1.
You may obtain a copy of Mulan PSL v1 at:

  http://license.coscl.org.cn/MulanPSL
  
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
PURPOSE.

See the Mulan PSL v1 for more details.
You might also like...

Flutter Radio Player, A Plugin to handle streaming audio without a hassle

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

Dec 27, 2022

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
  • Error after going in fullscreen Mode

    Error after going in fullscreen Mode

    Hi, i used this player in my App and if i try to play a video in fullscreen Mode i get this error:

    17:38:00.782 195 info flutter.tools The following assertion was thrown building Overlay-[LabeledGlobalKey<OverlayState>#1db36](state:
    17:38:00.782 196 info flutter.tools OverlayState#395d0(entries: [OverlayEntry#13bf0(opaque: true; maintainState: false),
    17:38:00.782 197 info flutter.tools OverlayEntry#4c28f(opaque: false; maintainState: true), OverlayEntry#2c8b4(opaque: true;
    17:38:00.782 198 info flutter.tools maintainState: false), OverlayEntry#65cfa(opaque: false; maintainState: true),
    17:38:00.782 199 info flutter.tools OverlayEntry#18b76(opaque: true; maintainState: false), OverlayEntry#9810f(opaque: false;
    17:38:00.782 200 info flutter.tools maintainState: true)])):
    17:38:00.782 201 info flutter.tools A VideoPlayerController was used after being disposed.
    17:38:00.782 202 info flutter.tools Once you have called dispose() on a VideoPlayerController, it can no longer be used.
    17:38:00.782 203 info flutter.tools 
    17:38:00.782 204 info flutter.tools The relevant error-causing widget was:
    17:38:00.782 205 info flutter.tools   MaterialApp file:///D:/Github/App/lib/main.dart:175:16
    17:38:00.782 206 info flutter.tools 
    17:38:00.782 207 info flutter.tools When the exception was thrown, this was the stack:
    17:38:00.782 208 info flutter.tools #0      ChangeNotifier._debugAssertNotDisposed.<anonymous closure> (package:flutter/src/foundation/change_notifier.dart:106:9)
    17:38:00.782 209 info flutter.tools #1      ChangeNotifier._debugAssertNotDisposed (package:flutter/src/foundation/change_notifier.dart:112:6)
    17:38:00.782 210 info flutter.tools #2      ChangeNotifier.removeListener (package:flutter/src/foundation/change_notifier.dart:167:12)
    17:38:00.782 211 info flutter.tools #3      _VideoPlayerState.deactivate (package:video_player/video_player.dart:545:23)
    17:38:00.782 212 info flutter.tools #4      StatefulElement.deactivate (package:flutter/src/widgets/framework.dart:4777:12)
    17:38:00.782 213 info flutter.tools #5      _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1953:13)
    17:38:00.782 214 info flutter.tools #6      ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
    17:38:00.782 215 info flutter.tools #7      _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.782 216 info flutter.tools #8      MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5984:16)
    17:38:00.782 217 info flutter.tools #9      _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.782 218 info flutter.tools #10     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5872:14)
    17:38:00.782 219 info flutter.tools #11     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.782 220 info flutter.tools #12     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5872:14)
    17:38:00.782 221 info flutter.tools #13     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.782 222 info flutter.tools #14     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
    17:38:00.782 223 info flutter.tools #15     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.782 224 info flutter.tools #16     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5872:14)
    17:38:00.783 225 info flutter.tools #17     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.783 226 info flutter.tools #18     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5872:14)
    17:38:00.783 227 info flutter.tools #19     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.783 228 info flutter.tools #20     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5872:14)
    17:38:00.783 229 info flutter.tools #21     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.783 230 info flutter.tools #22     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
    17:38:00.783 231 info flutter.tools #23     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.783 232 info flutter.tools #24     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
    17:38:00.783 233 info flutter.tools #25     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.783 234 info flutter.tools #26     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
    17:38:00.783 235 info flutter.tools #27     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.783 236 info flutter.tools #28     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
    17:38:00.783 237 info flutter.tools #29     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.783 238 info flutter.tools #30     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
    17:38:00.783 239 info flutter.tools #31     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
    17:38:00.783 240 info flutter.tools #32     _InactiveElements.add (package:flutter/src/widgets/framework.dart:1967:7)
    17:38:00.783 241 info flutter.tools #33     Element.deactivateChild (package:flutter/src/widgets/framework.dart:3537:29)
    17:38:00.783 242 info flutter.tools #34     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5670:11)
    17:38:00.783 243 info flutter.tools #35     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6012:17)
    17:38:00.783 244 info flutter.tools #36     Element.updateChild (package:flutter/src/widgets/framework.dart:3247:15)
    17:38:00.783 245 info flutter.tools #37     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4582:16)
    17:38:00.783 246 info flutter.tools #38     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4730:11)
    17:38:00.783 247 info flutter.tools #39     Element.rebuild (package:flutter/src/widgets/framework.dart:4273:5)
    17:38:00.783 248 info flutter.tools #40     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2667:33)
    17:38:00.783 249 info flutter.tools #41     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:880:20)
    17:38:00.783 250 info flutter.tools #42     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)
    17:38:00.783 251 info flutter.tools #43     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15)
    17:38:00.783 252 info flutter.tools #44     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1056:9)
    17:38:00.783 253 info flutter.tools #45     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:972:5)
    17:38:00.783 254 info flutter.tools #49     _invoke (dart:ui/hooks.dart:253:10)
    17:38:00.783 255 info flutter.tools #50     _drawFrame (dart:ui/hooks.dart:211:3)
    17:38:00.783 256 info flutter.tools (elided 3 frames from dart:async)
    

    The Widget is in a hierarchy like this:

    MaterialApp(
     Scaffold(
     StatefulWidget(
      Container(
       FutureBuilder(
        Column(
          Expanded(
           Container(
            ListView(
             StatefulWidget(
              Container(
               NeekoPlayerWidget())))))))))))
    

    and i dont know whats wrong, if i try it like in the example it works

    opened by d0mmi 0
  • inFullScreen paramter in NeekoPlayerWidget is not working

    inFullScreen paramter in NeekoPlayerWidget is not working

    Basically I need to fullscreen the video when the Orientation is landscape. So I have used OrienationBuilder in my app.

    NeekoPlayerWidget(
                                      videoControllerWrapper: playerController,
                                      isPip: isPip || isMediumSize,
                                      inFullScreen:
                                          orientation == Orientation.landscape,
                                    )
    

    But the video stays the the same when the orientation changes

    opened by Maadhav 0
  • Hide back button on player

    Hide back button on player

    Hi, anyone else knows how to hide the back button on the player?

    The way how I use the plugin was like this

    NeekoPlayerWidget( onSkipPrevious: () { print("previous"); _videoControllerWrapper.prepareDataSource(DataSource.network( "https://.......video........mp4")); }, onSkipNext: () { print("next"); _videoControllerWrapper.prepareDataSource(DataSource.network( "https://.......video........mp4")); }, videoControllerWrapper: _videoControllerWrapper, ),

    opened by ZMChoo 2
  • Issue when enabling autoplay and live

    Issue when enabling autoplay and live

    Hi. i'm experiencing an issue when enabling Autoplay and Live option. here is the error message.

    [38;5;248mโ•โ•โ•โ•โ•โ•โ•โ• Exception caught by widgets library โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•[39;49m
    [38;5;244mThe following NoSuchMethodError was thrown building Positioned(left: 0.0, right: 0.0, bottom: 0.0):[39;49m
    The method 'addListener' was called on null.
    Receiver: null
    Tried calling: addListener(Closure: () => Null)
    
    [38;5;244mThe relevant error-causing widget was[39;49m
        [38;5;248mNeekoPlayerWidget[39;49m
    [38;5;244mWhen the exception was thrown, this was the stack[39;49m
    [38;5;244m#0      Object.noSuchMethod  (dart:core-patch/object_patch.dart:53:5)[39;49m
    [38;5;248m#1      _LiveBottomBarState._attachListenerToController[39;49m
    [38;5;248m#2      _LiveBottomBarState.initState[39;49m
    [38;5;244m#3      StatefulElement._firstBuild[39;49m
    [38;5;244m#4      ComponentElement.mount[39;49m
    [38;5;244m...[39;49m
    [38;5;248mโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•[39;49m
    
    [38;5;248mโ•โ•โ•โ•โ•โ•โ•โ• Exception caught by widgets library โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•[39;49m
    The method 'addListener' was called on null.
    Receiver: null
    Tried calling: addListener(Closure: () => Null)
    [38;5;244mThe relevant error-causing widget was[39;49m
        [38;5;248mNeekoPlayerWidget[39;49m
    [38;5;248mโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•[39;49m
    
    [38;5;248mโ•โ•โ•โ•โ•โ•โ•โ• Exception caught by widgets library โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•[39;49m
    The method 'addListener' was called on null.
    Receiver: null
    Tried calling: addListener(Closure: () => Null)
    [38;5;244mThe relevant error-causing widget was[39;49m
        [38;5;248mNeekoPlayerWidget[39;49m
    [38;5;248mโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•[39;49m
    
    [38;5;248mโ•โ•โ•โ•โ•โ•โ•โ• Exception caught by widgets library โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•[39;49m
    The method 'addListener' was called on null.
    Receiver: null
    Tried calling: addListener(Closure: () => Null)
    [38;5;244mThe relevant error-causing widget was[39;49m
        [38;5;248mNeekoPlayerWidget[39;49m
    [38;5;248mโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•[39;49m
    
    

    Here is my code :

    import 'package:flutter/material.dart';
    import 'package:flutter/services.dart';
    import 'package:neeko/neeko.dart';
    import 'package:flutter/foundation.dart';
    
    class PlayerPage extends StatefulWidget {
      PlayerPage({Key key, @required this.url, @required this.title})
          : super(key: key);
    
      final String url;
      final String title;
    
      @override
      _PlayerPageState createState() => _PlayerPageState();
    }
    
    class _PlayerPageState extends State<PlayerPage> {
      VideoControllerWrapper videoControllerWrapper;
    
      @override
      void initState() {
        super.initState();
        videoControllerWrapper = VideoControllerWrapper(
            DataSource.network(widget.url, displayName: widget.title));
        SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
      }
    
      @override
      void dispose() {
        SystemChrome.restoreSystemUIOverlays();
        super.dispose();
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: NeekoPlayerWidget(
            playerOptions: NeekoPlayerOptions(autoPlay: true, isLive: true),
            videoControllerWrapper: videoControllerWrapper,
          ),
        );
      }
    }
    
    

    The player's works perfectly if i set the autoplay and live to false tho.

    opened by fahmih6 3
Owner
OpenFlutter
Make it easier.่ฎฉFlutterๆ›ด็ฎ€ๅ•ใ€‚
OpenFlutter
YoYo Video Player is a HLS(.m3u8) video player for flutter.

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 s

Ko Htut 89 Dec 23, 2022
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
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
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 | | |

Alexander Mateo 19 Nov 8, 2021
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