audioplayer 0.5.2

  • README.md
  • CHANGELOG.md
  • Example
  • Installing
  • Versions
  • 91

AudioPlayer

A Flutter audio plugin (ObjC/Java) to play remote or local audio files

Features

  • [x] Android & iOS
    • [x] play (remote file)
    • [x] stop
    • [x] pause
    • [x] onComplete
    • [x] onDuration / onCurrentPosition
    • [x] seek
    • [x] mute

screenshot

Usage

Example

To use this plugin :

  dependencies:
    flutter:
      sdk: flutter
    audioplayer:
  • Instantiate an AudioPlayer instance
//...
AudioPlayer audioPlugin = new AudioPlayer();
//...

Player Controls

Future<void> play() async {
  await audioPlayer.play(kUrl);
  setState(() => playerState = PlayerState.playing);
}

Future<void> pause() async {
  await audioPlayer.pause();
  setState(() => playerState = PlayerState.paused);
}

Future<void> stop() async {
  await audioPlayer.stop();
  setState(() {
    playerState = PlayerState.stopped;
    position = new Duration();
  });
}

Status and current position

The dart part of the plugin listen for platform calls :

//...
_positionSubscription = audioPlayer.onAudioPositionChanged.listen(
  (p) => setState(() => position = p)
);

_audioPlayerStateSubscription = audioPlayer.onPlayerStateChanged.listen((s) {
  if (s == AudioPlayerState.PLAYING) {
    setState(() => duration = audioPlayer.duration);
  } else if (s == AudioPlayerState.STOPPED) {
    onComplete();
    setState(() {
      position = duration;
    });
  }
}, onError: (msg) {
  setState(() {
    playerState = PlayerState.stopped;
    duration = new Duration(seconds: 0);
    position = new Duration(seconds: 0);
  });
});

Do not forget to cancel all the subscriptions when the widget is disposed.

iOS

⚠️ iOS App Transport Security

By default iOS forbids loading from non-https url. To cancel this restriction edit your .plist and add :

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

Troubleshooting

  • If you get a MissingPluginException, try to flutter build apk on Android, or flutter build ios
  • to use the plugin in a ObjC iOS project, add 'use_frameworks!' to your podfile cf. example

Getting Started

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

For help on editing plugin code, view the documentation.

Changelog

0.5.2

  • fix objC warning
  • updated example

0.5.1

  • Allow Dart 2 SDK
  • Fix java lint warnings.

0.5.0

  • BREAKING Change: No more separate handlers for communicating the state of the player. Instead we rely on streams to publish state changes and position updates.
  • Code formatting and flow improvements. Preparation for testing.

0.4.0

  • Feat : merge PR from mindon with mute methods and various improvements
  • fixes Future<int> errors with --preview-dart2
  • Example : add a slider to demonstrate the seek feature

0.3.0

  • merge PR from johanhenselmans to switch iOS to ObjectiveC
  • merge PR from oaks to add the seek feature

0.2.0

  • support for local files

0.1.0

0.0.2

Separated handlers for position, duration, completion and errors

  • setDurationHandler(TimeChangeHandler handler)

  • setPositionHandler(TimeChangeHandler handler)

  • setCompletionHandler(VoidCallback callback)

  • setErrorHandler(ErrorHandler handler)

  • new typedef

typedef void TimeChangeHandler(Duration duration);
typedef void ErrorHandler(String message);

0.0.1

  • first POC :
    • methods : play, pause, stop
    • a globalHandler for position, duration, completion and errors

example/README.md

audioplayer_example

a audio player plugin example

Getting Started

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

Use this package as a library

1. Depend on it

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


dependencies:
  audioplayer: ^0.5.2

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter packages get

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

3. Import it

Now in your Dart code, you can use:


import 'package:audioplayer/audioplayer.dart';
  
Version Uploaded Documentation Archive
0.5.2 Nov 18, 2018 Go to the documentation of audioplayer 0.5.2 Download audioplayer 0.5.2 archive
0.5.0 Jun 12, 2018 Go to the documentation of audioplayer 0.5.0 Download audioplayer 0.5.0 archive
0.4.0 Mar 22, 2018 Go to the documentation of audioplayer 0.4.0 Download audioplayer 0.4.0 archive
0.3.0 Oct 23, 2017 Go to the documentation of audioplayer 0.3.0 Download audioplayer 0.3.0 archive
0.2.0 May 26, 2017 Go to the documentation of audioplayer 0.2.0 Download audioplayer 0.2.0 archive
0.1.0+2 May 25, 2017 Go to the documentation of audioplayer 0.1.0+2 Download audioplayer 0.1.0+2 archive
0.1.0+1 May 25, 2017 Go to the documentation of audioplayer 0.1.0+1 Download audioplayer 0.1.0+1 archive
0.1.0 May 25, 2017 Go to the documentation of audioplayer 0.1.0 Download audioplayer 0.1.0 archive
Popularity:
Describes how popular the package is relative to other packages. [more]
90
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
80
Overall:
Weighted score of the above. [more]
91
Learn more about scoring.

We analyzed this package on Dec 5, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.1.0
  • pana: 0.12.7
  • Flutter: 1.0.0

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Maintenance suggestions

The description is too short. (-20 points)

Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.19.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11
meta 1.1.6
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8