spotify_playback 0.0.8

spotify_playback #

CircleCI

Spotify Playback Plugin.

No iOS Implementation yet, WIP..

Features #

  • Play (track / album / playlist)
  • Resume / pause
  • Queue
  • Playback position
  • Seek
  • Seek to relative position
  • Play Next
  • Play Previous
  • Repeat
  • Shuffle
  • Get image
  • Image link to URI

Installation #

IMPORTANT: Make sure you have the Spotify app installed and that you are logged in or your test device!

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

Afterwards, download the Spotify Android SDK here and move the spotify-app-remote-release-x.x.x.aar file to android/app/libs/ in your project.

Then initialize the spotify playback sdk like this

@override
  void initState() {
    super.initState();
    initConnector();
  }

  /// Initialize the spotify playback sdk, by calling spotifyConnect
  Future<void> initConnector() async {
    try {
      await SpotifyPlayback.spotifyConnect(clientId: "", redirectUrl: "").then(
          (connected) {
        if (!mounted) return;
        // If the method call is successful, update the state to reflect this change
        setState(() {
          _connectedToSpotify = connected;
        });
      }, onError: (error) {
        // If the method call trows an error, print the error to see what went wrong
        print(error);
      });
    } on PlatformException {
      print('Failed to connect.');
    }
  }

After this you can use all the available methods

Available methods #

Methoddescriptionparametersnotes
spotifyConnectInitilizes the spotify playback sdkclientId, redirectUrl
playPlay's an spotify track, album or playlistspotify uri
pausePause's the currently playing track
resumeResumes the currently paused track
queueAdds an track / playlist / album to the queuespotify uri
skipNextPlay's the next track
skipPreviousPlay's the previous track
seekToSeeks to the passed timetime(mS)
seekToRelativePositionSeeks to relative position+-time(mS)
toggleShuffleToggle shuffle options
toggleShuffleToggle Repeat options
getPlaybackPositionGet's the current tracks playback position
getImageGets a Uint8List encoded image(memoryImage)imageUri, quality, size
imageLinkToURiTakes an image url and returns image uri(for get image)imageLink

Example #

Demonstrates how to use the spotify_playback plugin.

See the example documentation for more information.

Function examples #

GetImage #

Get image accepts the following parameters:

  • URI, the spotify image uri - string
  • Quality, the quality the image should be provided in - int 0-100
  • Size, the spotify image size can be one of the following
    • 144 dimension = THUMBNAIL
    • 240 dimension = X_SMALL
    • 360 dimension = SMALL
    • 480 dimension = MEDIUM
    • 720 dimension = LARGE
//You can provide an image uri
SpotifyPlayback.getImage(uri: "spotify:image:3269971d34d3f17f16efc2dfa95e302cc961a36c", quality: 100, size: 360);

//Or you can provide an url returned webAPI
SpotifyPlayback.getImage(uri: SpotifyPlayback.imageLinkToURi("https://i.scdn.co/image/3269971d34d3f17f16efc2dfa95e302cc961a36c"), quality: 100, size:360);

//Theese both return a Uint8List encoded image.
//You can then use the Image.memory() to display the image
Image.memory(yourUint8ListImageHere)

Changelog #

See CHANGELOG.md.

Special Thanks #

Contributing #

Feel free to contribute by opening issues and/or pull requests. Your feedback is very welcome!

License #

MIT License

Copyright (c) [2019] [Joran Dob] Copyright (c) [2019] [QREATE]

0.0.8 #

  • Added get image and image link to uri functionality
  • Refactored code

0.0.7 #

  • Fixed kotlin compatibility issue see #15
  • Added seek to relative position

0.0.6 #

  • Added queue function, so you can queue songs / playlist / albums

0.0.5 #

  • Renamed playprev, playnext to the more commonly used skipNext, skipPrevious
  • Updated the Spotify SDK version to 0.6.1

0.0.4 #

  • Reformatted code
  • Added comments
  • Gradle version bump
  • Updated readme

0.0.3 #

  • Changed the Spotify SDK version to 0.6.0
  • Added Toggle Shuffle & Toggle repeat Functionality
  • Removed unnecessary 'new' keywords from flutter code
  • Added functions: Seek, Play Next, Play Previous

0.0.1 #

  • TODO: Describe initial release.

example/README.md

spotify_playback_example #

Demonstrates how to use the spotify_playback plugin.

The example app has an basic implementation to connect to:

  • Play an predefined track
  • Pause the currently playing track on your account
  • Resume the currently paused track on your account
  • Stop the playback for the current track
  • Get the current position of the active track
  • Get track information for the current track

Getting Started #

The only thing needed to use this example app is an registerd apllication.

Please add an new app here, https://developer.spotify.com/dashboard/applications

And register the Android app, with this application id io.feesie.spotify.playback.example and your development signing cert SHA1 fingerprint

For an more detailed guide to do this, go here: https://developer.spotify.com/documentation/general/guides/app-settings/

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  spotify_playback: ^0.0.8

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:spotify_playback/spotify_playback.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
63
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
90
Overall:
Weighted score of the above. [more]
79
Learn more about scoring.

We analyzed this package on Jul 17, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.4.0
  • pana: 0.12.19
  • Flutter: 1.7.8+hotfix.3

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Health suggestions

Format lib/spotify_playback.dart.

Run flutter format to format lib/spotify_playback.dart.

Maintenance suggestions

Package is pre-v0.1 release. (-10 points)

While nothing is inherently wrong with versions of 0.0.*, it might mean that the author is still experimenting with the general direction of the API.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0-dev.68.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11
meta 1.1.6 1.1.7
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8

Admin