A complete music player in flutter with cool UI and design.

Overview

Flutter Music Player

A complete and open source music player designed in flutter. It is first complete music player designed in flutter. This app exploits Sqlite databse that enables faster loading of songs at startup. Only one time setup for loading songs is needed. This app comes with a lot of features and a more are coming soon.

You can download app from releases Music Player.


Please star the repo up, if you like the work.

Features

  • Play local songs
  • Beautiful screens
  • Sqlite database support
  • Search songs, Songs suggestions
  • Top tracks, Recent songs, Random song
  • Album view, Artist view
  • Playing queue, Shuffle, Add to favourites
  • Play/pause, Next/prev
  • Themes(dark/light), Custom font, Animations
  • landscape mode

    Video

    Catch the demo in this video.
    Watch the video

    Screenshots

    Now playing Home Screen
    Dark Home Screen

    Plugins

    Music player plugin used : Flute-music
    For Sqlite :SQLite flutter plugin

    Note: This app may contain few bugs, which will be fixed shortly.

    Licence

    MIT License

    Copyright (c) 2018 Aman gautam

    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 for personal use, including without limitation the rights to use, copy, modify, merge and/or publish 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.

    Getting Started

    For help getting started with Flutter, view our online documentation.

    Donation

    If this project help you reduce time to develop, you can give me a cup of coffee :)

    paypal

  • Comments
    • Lots of error while trying to run app from the source code

      Lots of error while trying to run app from the source code

      Flutter SDK: 0.5.1 Dart SDK: 2.0.0

      Error message while running flutter run `Running 'gradlew assembleDebug'...
      compiler message: lib/database/database_client.dart:27:14: Error: The getter 'count' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing getter, or defining a getter or field named 'count'. compiler message: if (song.count == null) { compiler message: ^ compiler message: lib/database/database_client.dart:28:12: Error: The setter 'count' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing setter, or defining a setter or field named 'count'. compiler message: song.count = 0; compiler message: ^ compiler message: lib/database/database_client.dart:30:14: Error: The getter 'timestamp' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing getter, or defining a getter or field named 'timestamp'. compiler message: if (song.timestamp == null) { compiler message: ^ compiler message: lib/database/database_client.dart:31:12: Error: The setter 'timestamp' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing setter, or defining a setter or field named 'timestamp'. compiler message: song.timestamp = 0; compiler message: ^ compiler message: lib/database/database_client.dart:33:14: Error: The getter 'isFav' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing getter, or defining a getter or field named 'isFav'. compiler message: if (song.isFav == null) { compiler message: ^ compiler message: lib/database/database_client.dart:34:12: Error: The setter 'isFav' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing setter, or defining a setter or field named 'isFav'. compiler message: song.isFav = 0; compiler message: ^ compiler message: lib/database/database_client.dart:41:43: Error: The method 'toMap' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing method, or defining a method named 'toMap'. compiler message: id = await _db.insert("songs", song.toMap()); compiler message: ^ compiler message: lib/database/database_client.dart:45:33: Error: The method 'toMap' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing method, or defining a method named 'toMap'. compiler message: .update("songs", song.toMap(), where: "id= ?", whereArgs: [song.id]); compiler message: ^ compiler message: lib/database/database_client.dart:63:48: Error: Getter not found: 'Columns'. compiler message: await _db.query("songs", columns: Song.Columns, orderBy: "title"); compiler message: ^^^^^^^ compiler message: lib/database/database_client.dart:74:48: Error: Getter not found: 'Columns'. compiler message: await _db.query("songs", columns: Song.Columns, where: "albumid=$id"); compiler message: ^^^^^^^ compiler message: lib/database/database_client.dart:117:23: Error: Getter not found: 'Columns'. compiler message: columns: Song.Columns, where: "artist='$artist'"); compiler message: ^^^^^^^ compiler message: lib/database/database_client.dart:147:45: Error: The method 'toMap' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing method, or defining a method named 'toMap'. compiler message: id = await _db.insert("recents", song.toMap()); compiler message: ^ compiler message: lib/database/database_client.dart:150:40: Error: The method 'toMap' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing method, or defining a method named 'toMap'. compiler message: await _db.update("recents", song.toMap(), compiler message: ^ compiler message: lib/database/database_client.dart:195:45: Error: The method 'toMap' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing method, or defining a method named 'toMap'. compiler message: id = await _db.insert("songs", song.toMap()); compiler message: ^ compiler message: lib/database/database_client.dart:198:40: Error: The method 'toMap' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing method, or defining a method named 'toMap'. compiler message: await _db.update("songs", song.toMap(), compiler message: ^ compiler message: lib/pages/now_playing.dart:110:10: Error: The setter 'timestamp' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing setter, or defining a setter or field named 'timestamp'. compiler message: song.timestamp = new DateTime.now().millisecondsSinceEpoch; compiler message: ^ compiler message: lib/pages/now_playing.dart:111:14: Error: The getter 'count' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing getter, or defining a getter or field named 'count'. compiler message: if (song.count == null) { compiler message: ^ compiler message: lib/pages/now_playing.dart:112:12: Error: The setter 'count' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing setter, or defining a setter or field named 'count'. compiler message: song.count = 0; compiler message: ^ compiler message: lib/pages/now_playing.dart:114:12: Error: The getter 'count' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing getter, or defining a getter or field named 'count'. compiler message: song.count++; compiler message: ^ compiler message: lib/pages/now_playing.dart:114:12: Error: The setter 'count' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing setter, or defining a setter or field named 'count'. compiler message: song.count++; compiler message: ^ compiler message: lib/pages/now_playing.dart:117:18: Error: The getter 'isFav' isn't defined for the class '#lib1::Song'. compiler message: Try correcting the name to the name of an existing getter, or defining a getter or field named 'isFav'. compiler message: isfav = song.isFav; compiler message: ^ Compiler failed on /home/himank/LinuxProg/GitHub/flutter-musicplayer/lib/main.dart

      FAILURE: Build failed with an exception. ` I also ran flutter packages get before, so the dependecies are satisfied.

      opened by himankpathak 6
    • This class (or a class which this class inherits from) is marked as '@immutable', but one or more of its instance fields are not final: MusicHome.songs

      This class (or a class which this class inherits from) is marked as '@immutable', but one or more of its instance fields are not final: MusicHome.songs

      This class (or a class which this class inherits from) is marked as '@immutable', but one or more of its instance fields are not final: MusicHome.songs. Same message is showing in most pages The error is pointing in this line of code which is MusicHome: class MusicHome extends StatefulWidget {

      Here is the full code `import 'dart:async';

      import 'package:flute_music_player/flute_music_player.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:musicplayer/database/database_client.dart'; import 'package:musicplayer/pages/now_playing.dart'; import 'package:musicplayer/pages/settings.dart'; import 'package:musicplayer/util/lastplay.dart'; import 'package:musicplayer/views/album.dart'; import 'package:musicplayer/views/artists.dart'; import 'package:musicplayer/views/home.dart'; import 'package:musicplayer/views/playlists.dart'; import 'package:musicplayer/views/songs.dart'; import 'package:shared_preferences/shared_preferences.dart';

      class MusicHome extends StatefulWidget {

      List songs; MusicHome();

      final bottomItems = [ new BottomItem("Home", Icons.home), new BottomItem("Albums", Icons.album), new BottomItem("Songs", Icons.music_note), new BottomItem("Artists", Icons.person), new BottomItem("PlayList", Icons.playlist_add_check), ]; @override State createState() { return new _Musicstate(); } }

      class _Musicstate extends State { int _selectedDrawerIndex = 0; List songs; String title = "Music player"; DatabaseClient db; bool isLoading = true; Song last; Color color = Colors.deepPurple; var themeLoading = true;

      getDrawerItemWidget(int pos) { switch (pos) { case 0: return new Home(db); case 2: return new Songs(db); case 3: return new Artists(db); case 1: return new Album(db); case 4: return new PlayList(db); default: return new Text("Error"); } }

      _onSelectItem(int index) { setState(() => _selectedDrawerIndex = index); getDrawerItemWidget(_selectedDrawerIndex); title = widget.bottomItems[index].title; }

      @override void initState() { super.initState(); initPlayer(); getSharedData(); }

      void initTheme() async { var pref = await SharedPreferences.getInstance(); var val = pref.getInt("theme"); print("theme=$val"); if (val == 1) { color = Theme.of(context).primaryColor; setState(() { themeLoading = false; }); } }

      void initPlayer() async { db = new DatabaseClient(); await db.create(); if (await db.alreadyLoaded()) { setState(() { isLoading = false; getLast(); }); } else { var songs; try { songs = await MusicFinder.allSongs(); } catch (e) { print("failed to get songs"); } List list = new List.from(songs); for (Song song in list) db.upsertSOng(song); if (!mounted) { return; } setState(() { isLoading = false; getLast(); }); } }

      getSharedData() async { const platform = const MethodChannel('app.channel.shared.data'); Map sharedData = await platform.invokeMethod("getSharedData"); if (sharedData != null) { if (sharedData["albumArt"] == "null") { sharedData["albumArt"] = null; } Song song = new Song( 9999 /random/, sharedData["artist"], sharedData["title"], sharedData["album"], null, int.parse(sharedData["duration"]), sharedData["uri"], sharedData["albumArt"]); List list = new List(); list.add((song)); MyQueue.songs = list; Navigator.of(context).push(new MaterialPageRoute(builder: (context) { return new NowPlaying(null, list, 0, 0); })); } }

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

      void getLast() async { last = await db.fetchLastSong(); songs = await db.fetchSongs(); setState(() { songs = songs; }); }

      GlobalKey scaffoldState = new GlobalKey(); @override Widget build(BuildContext context) { var bottomOptions = []; for (var i = 0; i < widget.bottomItems.length; i++) { var d = widget.bottomItems[i]; bottomOptions.add( new BottomNavigationBarItem( icon: new Icon( d.icon, ), title: new Text(d.title), backgroundColor: Theme.of(context).primaryColor, ), ); } return new WillPopScope( child: new Scaffold( key: scaffoldState, appBar: _selectedDrawerIndex == 0 ? null : new AppBar( title: new Text(title), actions: [ new IconButton(icon: Icon(Icons.search), onPressed: null) ], ), floatingActionButton: new FloatingActionButton( child: new Icon(Icons.play_circle_filled), onPressed: () async { var pref = await SharedPreferences.getInstance(); var fp = pref.getBool("played"); if (fp == null) { scaffoldState.currentState.showSnackBar( new SnackBar(content: Text("Play your first song."))); } else { Navigator .of(context) .push(new MaterialPageRoute(builder: (context) { if (MyQueue.songs == null) { List list = new List(); list.add(last); MyQueue.songs = list; return new NowPlaying(db, list, 0, 0); } else return new NowPlaying(db, MyQueue.songs, MyQueue.index, 1); })); } }), drawer: new Drawer( child: new Column( children: [ new UserAccountsDrawerHeader( accountName: new Text("Music player"), accountEmail: null), new Column( children: [ new ListTile( leading: new Icon(Icons.settings, color: Theme.of(context).accentColor), title: new Text("Settings"), onTap: () { Navigator.of(context).pop(); Navigator .of(context) .push(new MaterialPageRoute(builder: (context) { return new Settings(); })); }), ], ) ], ), ), body: isLoading ? new Center( child: new CircularProgressIndicator(), ) : getDrawerItemWidget(_selectedDrawerIndex), bottomNavigationBar: new BottomNavigationBar( items: bottomOptions, onTap: (index) => _onSelectItem(index), currentIndex: _selectedDrawerIndex, ), ), onWillPop: _onWillPop, ); }

      Future _onWillPop() { if (_selectedDrawerIndex != 0) { setState(() { selectedDrawerIndex = 0; }); return(null); } else return showDialog( context: context, builder: ()=> new AlertDialog( title: new Text('Are you sure?'), content: new Text('music player will be stopped..'), actions: [ new FlatButton( onPressed: () => Navigator.of(context).pop(false), child: new Text( 'No', ), ), new FlatButton( onPressed: () { MyQueue.player.stop(); Navigator.of(context).pop(true); }, child: new Text('Yes'), ), ], ), ) ?? false; }

      }

      class BottomItem { String title; IconData icon; BottomItem(this.title, this.icon); }

      `

      opened by Alidhuniya 4
    • Missing plugin exception

      Missing plugin exception

      Exception has occurred. MissingPluginException (MissingPluginException(No implementation found for method getSharedData on channel app.channel.shared.data))

      I/flutter (28237): theme=null method not available: ext.flutter.debugPaintmethod not available: ext.flutter.showPerformanceOverlaymethod not available: ext.flutter.repaintRainbowmethod not available: ext.flutter.timeDilationmethod not available: ext.flutter.debugAllowBannermethod not available: ext.flutter.debugPaintBaselinesEnabledmethod not available: ext.flutter.inspector.show

      Testing on USB connected android device.

      opened by blazephoenix 4
    • giving lots of errors

      giving lots of errors

      error: The setter 'timestamp' isn't defined for the class 'Song'. (undefined_setter at [musicplayer] lib/pages/now_playing.dart:110) error: The getter 'count' isn't defined for the class 'Song'. (undefined_getter at [musicplayer] lib/pages/now_playing.dart:111) error: The setter 'count' isn't defined for the class 'Song'. (undefined_setter at [musicplayer] lib/pages/now_playing.dart:112) error: The setter 'count' isn't defined for the class 'Song'. (undefined_setter at [musicplayer] lib/pages/now_playing.dart:114) error: The getter 'isFav' isn't defined for the class 'Song'. (undefined_getter at [musicplayer] lib/pages/now_playing.dart:117) warning: Missing return value after 'return'. (return_without_value at [musicplayer] lib/pages/list_songs.dart:68) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/main.dart:14) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/musichome.dart:17) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/musichome.dart:33) info: This function has a return type of 'Future', but doesn't end with a return statement. (missing_return at [musicplayer] lib/musichome.dart:238) info: 'child' is deprecated and shouldn't be used. (deprecated_member_use at [musicplayer] lib/musichome.dart:246) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/pages/card_detail.dart:10) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/pages/card_detail.dart:23) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/pages/list_songs.dart:10) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/pages/list_songs.dart:22) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/pages/material_search.dart:8) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/pages/material_search.dart:18) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/pages/now_playing.dart:9) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/pages/now_playing.dart:21) info: The value of the local variable 'i' isn't used. (unused_local_variable at [musicplayer] lib/pages/now_playing.dart:475) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/pages/settings.dart:14) info: Field doesn't override an inherited getter or setter. (override_on_non_overriding_field at [musicplayer] lib/pages/settings.dart:32) info: Unused import: 'dart:typed_data'. (unused_import at [musicplayer] lib/util/utility.dart:2) info: Unused import: 'dart:io'. (unused_import at [musicplayer] lib/views/album.dart:1) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/views/album.dart:9) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/views/album.dart:18) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/views/artists.dart:6) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/views/artists.dart:15) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/views/home.dart:13) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/views/home.dart:22) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/views/playlists.dart:5) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/views/playlists.dart:15) info: This method overrides a method annotated as @mustCallSuper in 'State', but does not invoke the overridden method. (must_call_super at [musicplayer] lib/views/playlists.dart:20) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/views/songs.dart:10) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/views/songs.dart:20)

      opened by ashvinstech 4
    • "Unfortunately Music Player has stopped working" Error when launching App

      I get that error when trying to launch the app. I have updated the code for the Song class and added a default return null in list_songs.dart at line 67 (my IDE showed it as an error due to the lack of a return statement) There are still some warnings showing up, though no errors. Could they be the reason as to why the app isn't starting ? If so how to fix them ? If not what could be the reason ? I am trying to run it on an emulator with Android API 16. Do I need a higher one ?

      Warnings: info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\main.dart:14) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\musichome.dart:17) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\musichome.dart:33) info: This function has a return type of 'Future', but doesn't end with a return statement. (missing_return at [musicplayer] lib\musichome.dart:238) info: 'child' is deprecated and shouldn't be used. (deprecated_member_use at [musicplayer] lib\musichome.dart:246) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\pages\card_detail.dart:10) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\pages\card_detail.dart:23) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\pages\list_songs.dart:10) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\pages\list_songs.dart:22) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\pages\material_search.dart:8) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\pages\material_search.dart:18) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\pages\now_playing.dart:9) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\pages\now_playing.dart:21) info: The value of the local variable 'i' isn't used. (unused_local_variable at [musicplayer] lib\pages\now_playing.dart:475) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\pages\settings.dart:14) info: Field doesn't override an inherited getter or setter. (override_on_non_overriding_field at [musicplayer] lib\pages\settings.dart:32) info: Unused import: 'dart:typed_data'. (unused_import at [musicplayer] lib\util\utility.dart:2) info: Unused import: 'dart:io'. (unused_import at [musicplayer] lib\views\album.dart:1) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\views\album.dart:9) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\views\album.dart:18) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\views\artists.dart:6) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\views\artists.dart:15) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\views\home.dart:13) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\views\home.dart:22) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\views\playlists.dart:5) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\views\playlists.dart:15) info: This method overrides a method annotated as @mustCallSuper in 'State', but does not invoke the overridden method. (must_call_super at [musicplayer] lib\views\playlists.dart:20) info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\views\songs.dart:10) info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\views\songs.dart:20)

      opened by Hansi144 3
    • The following assertion was thrown attaching to the render tree

      The following assertion was thrown attaching to the render tree

      I/flutter (28786): The following assertion was thrown attaching to the render tree: I/flutter (28786): 'package:flutter/src/material/slider_theme.dart': Failed assertion: line 233 pos 16: 'trackHeight != I/flutter (28786): null': is not true. I/flutter (28786): I/flutter (28786): Either the assertion indicates an error in the framework itself, or we should provide substantially

      opened by alistarfire 2
    • File google-services.json is missing. The Google Services Plugin cannot function without it.

      File google-services.json is missing. The Google Services Plugin cannot function without it.

      • What went wrong: Execution failed for task ':app:processDebugGoogleServices'.

      File google-services.json is missing. The Google Services Plugin cannot function without it. Searched Location: /home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/nullnull/debug/google-services.json /home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/debug/nullnull/google-services.json /home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/nullnull/google-services.json /home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/debug/google-services.json /home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/nullnullDebug/google-services.json /home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/google-services.json

      • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

      • Get more help at https://help.gradle.org

      BUILD FAILED in 10s Finished with error: Gradle task assembleDebug failed with exit code 1

      opened by imdarpn 1
    • Correct Song class for project

      Correct Song class for project

      This is the current class for Song that i modify for use:

      class Song {
      
        static final Columns=["id","artist", "title", "album", "albumId", "duration", "uri", "albumArt","count","isFav","timestamp"];
      
        int id;
        String artist;
        String title;
        String album;
        int albumId;
        int duration;
        String uri;
        String albumArt;
        int count;
        int timestamp;
        int isFav;
      
        Song(this.id, this.artist, this.title, this.album, this.albumId,
            this.duration, this.uri, this.albumArt);
      
        Song.fromMap(Map m) {
          id = m["id"];
          artist = m["artist"];
          title = m["title"];
          album = m["album"];
          albumId = m["albumId"];
          duration = m["duration"];
          uri = m["uri"];
          albumArt = m["albumArt"];
        }
      
        Map<String, dynamic> toMap() {
          Map params = <String, dynamic>{
            "id": id,
            "artist": artist,
            "title": title,
            "album": album,
            "albumId": albumId,
            "duration": duration,
            "uri": uri,
            "albumArt": albumArt,
            "count": count,
            "timestamp": timestamp,
            "isFav": isFav,
          };
      
          return params;
        }
      
      }
      
      opened by paulocoutinhox 1
    • Bug Fix

      Bug Fix

      when a user searches for a song to play, the songs variable (which is a List) gets changed and since songs is passed by reference it also gets changed in the home page as a result when user returns back to search page, the songs variable only has the list of songs that matched the previous search.

      opened by unique1o1 0
    • Code not working on new flutter

      Code not working on new flutter

      Hi guys, you did a splendid job with the music player - it's the best I have ever seen.

      Can you kindly update it to work on the new flutter version and it's dependencies?

      opened by Innovancet 0
    • Error in debug

      Error in debug

      FAILURE: Build failed with an exception.

      • What went wrong: Execution failed for task ':app:processDebugGoogleServices'.

      File google-services.json is missing. The Google Services Plugin cannot function without it. Searched Location: C:\Users\Ritweek\Desktop\flutter-musicplayer\android\app\src\nullnull\debug\google-services.json C:\Users\Ritweek\Desktop\flutter-musicplayer\android\app\src\debug\nullnull\google-services.json C:\Users\Ritweek\Desktop\flutter-musicplayer\android\app\src\nullnull\google-services.json C:\Users\Ritweek\Desktop\flutter-musicplayer\android\app\src\debug\google-services.json C:\Users\Ritweek\Desktop\flutter-musicplayer\android\app\src\nullnullDebug\google-services.json C:\Users\Ritweek\Desktop\flutter-musicplayer\android\app\google-services.json

      • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

      • Get more help at https://help.gradle.org

      BUILD FAILED in 6m 44s Finished with error: Gradle task assembleDebug failed with exit code 1

      opened by RitweekTiwari 2
    • PLAYS EVEN ANOTHER SONG IS PLAYING

      PLAYS EVEN ANOTHER SONG IS PLAYING

      Problems:

      1. Home(db); is throwing exception
      2. Once a song is clicked and it is playing then minimize the app and open youtube or othe rmusic players or Opening this same app and Play Same or Different song,its playing both of the songs[it should be stopped when an video is opened in youtube or it should be stopped when a song is played in another player]
      opened by ghost 0
    • i got an error when run project

      i got an error when run project

      Fetching external sources -> Fetching podspec for Flutter from .symlinks/flutter/ios -> Fetching podspec for flute_music_player from .symlinks/plugins/flute_music_player/ios [!] No podspec found for flute_music_player in .symlinks/plugins/flute_music_player/ios

      opened by sonysm 0
    Releases(v1.0_beta)
    Owner
    Aman gautam
    Flutter | Android | Java | Kotlin | Spring | Boot | Hibernate | JPA
    Aman gautam
    Flutter-Musive-app - Full-stack music player app written in flutter and dart using node.js music API

    Musive Full-stack music player app is written in flutter and dart using node.js

    Ansh rathod 69 Dec 28, 2022
    A music player component for Flutter (i.e. Spotify, Apple Music, etc.) [AGPL/example/no longer maintaining]

    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
    A music player app that allows you to search for music by artist made using Flutter

    Music Player A music player app that allows you to search for music by artist. Music source from iTunes affiliate API. Made using Flutter with simple

    muhibush 5 Feb 5, 2022
    Tic Tac Toe game with single-player and multi-player options. Implemented minimax algorithm.

    flutter_tic_tac_toe A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you star

    null 0 Jan 1, 2022
    Music player application for android. It's uses MVVM architecture and Provider & ValueNotifier state management.

    music-player-flutter Flutter music player application which is my personal project published to play store. Project structures are as following,

    null 30 Jul 10, 2022
    Flutter-tunein - Music Player built with flutter

    ?? Flutter Music Player ⭐️ this repo if you like it. Getting Started ?? Clone the repo Install the dependicies Run it Todos Retrieve songs Retrieve fr

    Bouaggad Moez 125 Oct 11, 2022
    Dynamically themed Music Player built with flutter

    ?? Flutter Music Player Contact me email: [email protected] Gitter: https://gitter.im/Moda20TuneIn/community Thank you in advance ?? Getting Started

    null 135 Dec 31, 2022
    Kadi, A flutter based music Player

    Kadi Music Player OpenSource Flutter Based Music Player with Fantastic UI Demo App Clone Build Run Features Android (iOS Coming Soon) Fetch local song

    null 6 Jun 2, 2021
    A music player android application build using Flutter.

    music_player A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if

    Rohit Krishna 19 Dec 28, 2022
    Collection of cool Layouts built with Flutter to Inspire Other UI developers and explore the possibilities of Flutter.

    Awesome_Flutter_Layouts Would you like to Contribute your Designs? Please refer the Contribution guidelines before you dive In Need help? or Looks Som

    Mahesh Jamdade 103 Nov 22, 2022
    A simple project with cool animations and fluid UI

    Pokedex This task was quite an interesting one. As with all my projects, I started with understanding the scope and state of this app. I decided to us

    JasperEssien 7 Dec 31, 2022
    This is flutter package for creating a gender selection widget which allows users to choose a gender with cool animations

    gender_selection A Flutter package for gender selection. It is an aweome gender selection widget with cool gradients and animation effects Demo Instal

    Rohan Malik 10 Apr 8, 2022
    Simple but pretty cool birthday countdown app built using flutter

    Simple but pretty cool birthday countdown app "For You" ?? Don't forget to star ⭐ the repo if you like what you I have created ?? . ?? GIF of a sample

    Ruslan Hasanov 6 Aug 13, 2022
    Cool linter This is a custom linter package for dart/flutter code.

    Cool linter This is a custom linter package for dart/flutter code. It can set linter for exclude some of words. This words you can set in analysis_opt

    null 8 Mar 4, 2022
    A simple, powerful widget to build cool transitions

    motion_widget A simple, powerful widget to build cool transitions Features Fine-grained control with Interval Lightweight & fully customizable No boil

    Sumeet Rukeja 33 Jul 29, 2021
    The UI/UX of Music app from Capi Design team.

    elexto_music A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if

    null 47 Sep 7, 2021
    The music app developed based on a dribble design.

    Flutter Music App A new Flutter Flutter Music App built playing with animation and local music files from Soundcloud Getting Started For help getting

    Himanshu Singh 46 Dec 27, 2022
    It's OK to love Flutter and hate hand-coding design elements. Parabeac-Core converts design files into Flutter code.

    Parabeac-Core Parabeac-Core converts design files into Flutter code driven by open-source & community. Contribute · Discord Community · Designer Proto

    Parabeac 536 Jan 4, 2023
    Udemy Course "Dart and Flutter: The Complete Developer's Guide" Project. (With Hive DB)

    Udemy-Course-Flutter Udemy Course "Dart and Flutter: The Complete Developer's Guide" Project. (With Hive DB) The course: https://www.udemy.com/course/

    Muhammad Tayyab 1 Jun 11, 2022