gapless_audio_loop 1.1.0

  • Readme
  • Changelog
  • Example
  • Installing
  • 76

Gapless Audio Loop #

A flutter plugin to enable gapless loops on Android and iOs.

Android may stills see some gaps on older versions like Android 6, newer versions of the SO seems to work fine.

The Android solution is heavily inspired by this article.

At the moment this package is very simple and does not feature many media player functions, the focus on this package is to have a gapless loop, if you have suggestions to improve this package, please file an issue or send a PR.

If you need a more full-featured audio player, I suggest that you take a look on the audioplayers package.

Usage #

Drop it on your pubspec.yaml

gapless_audio_loop: ^1.1.0

Import it:

import 'package:gapless_audio_loop/gapless_audio_loop.dart';

Loading and starting the loop:

final player = GaplessAudioLoop();
await player.loadAsset('Loop-Menu.wav'); // use loadFile instead to use a file from the device storage

await player.play();

To stop the loop just call await player.stop()

You can also pause and resume using the pause and resume methods.

Volume #

Audio volume can be changed using the the setVolume method, which receives a double between 0 and 1, which represents the percentage of the total volume of the device, example, if you pass 0.5 it means that the audio will play on 50% of the total volume.

Seek #

Seeking can be done by the seek method, which receives a Duration object, beware that since this is a looping library, if you call seek to a value bigger than the total duration of the file, unexpected behaviour may occur, so it is highly recommend to avoid that and only use durations that are inside the total length of the file.

Troubleshooting #

These are some know reasons for audio files not looping perfect:

  • Android 6 does not seems to loop perfectly the files for some reason.
  • MP3 usually have gaps due to its compress format, for more info check this question on stackexchange.
  • OGG files working only on Android: Unfortunately OGG is not support by iOs.

1.1.0 #

  • Added support for files not from the asset bundle

1.0.0 #

  • Added pause, resume, seek and volume control

0.0.1 #

  • Initial release

example/README.md

gapless_audio_loop_example #

Demonstrates how to use the gapless_audio_loop plugin.

Audio file from: https://opengameart.org/content/menu-loop

Use this package as a library

1. Depend on it

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


dependencies:
  gapless_audio_loop: ^1.1.0

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:gapless_audio_loop/gapless_audio_loop.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
53
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
76
Learn more about scoring.

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

  • Dart: 2.5.1
  • pana: 0.12.21
  • Flutter: 1.9.1+hotfix.4

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
flutter 0.0.0
path_provider ^1.1.2 1.3.1
Transitive dependencies
collection 1.14.11 1.14.12
meta 1.1.7
platform 2.2.1
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
flutter_test
http 0.12.0+2