simple_audio 1.9.0 copy "simple_audio: ^1.9.0" to clipboard
simple_audio: ^1.9.0 copied to clipboard

A simple cross-platform solution for playing audio in Flutter.

1.9.0 #

  • Improved gapless playback
    • The preloaded file is automatically played when the current file is done playing.
    • clearPreload() removes the preloaded file so that it doesn't automatically play.
    • PreloadPlayed playback state which is sent after the preload was automatically played.

1.8.0 #

  • Add stop event (thanks @dannyglover)
  • Add uuid dependency

1.7.0 #

  • Improved error handling. Custom errors are thrown in open() and preload(). The onNetworkStreamError and onDecodeError callbacks now have a parameter for the error message.
  • Updated flutter_rust_bridge to 1.82.1
  • Removed useless comments in pubspec.yaml

1.6.6 #

  • Specify explicit version of flutter_rust_bridge

1.6.5 #

  • Increase device buffer size, compare buffer size to default instead of 1

1.6.4 #

  • Select correct buffer size based on default output config.
  • Extract ios.zip to simple_audio.xcframework directory (thanks @Yesterday17)
  • Add topics to pubspec.yaml

1.6.3 #

  • Fix method channels hanging because a result wasn't returned in native code.

1.6.2 #

  • Release assets use tar.gz for Linux/Android/Windows
  • Update README
  • Update git/pub ignore

1.6.1 #

  • Fixed normalization gain calculation.
  • Normalizer has smoother volume changes and don't apply excess positive gain.
  • Refactored CD. Built libraries are now release assets instead of files committed to the repo.
  • Created a CI.

1.6.0 #

  • Opus support (thanks @Yesterday17)

1.5.8 #

  • Fix stream playback stopping for a moment when preloading another network stream.
  • Fix preloaded output stream breaking the next streams on Windows.
  • Fix playPreload not auto playing on Windows.

1.5.7 #

  • HTTP and HLS streams fallback to downloading the file if Content-Length cannot be acquired.
  • More CD improvements

1.5.6 #

  • Update .pubignore to exclude the iOS framework Info.plist file.
  • Improve CD workflow file.
    • Use different context variables
    • Add --rebase flag to git pull
  • Remove OpenSSL dependency to improve CD build times on iOS.

1.5.5 #

  • Fix preloaded file not playing after output device is changed.
  • MPRIS: Fix error when hot reloading because name is taken.
  • Increase downloaded chunk size for network streams.

1.5.4 #

  • Fix Android audio crackling with Bluetooth headphones.
  • Fix high CPU usage with MPRIS.
  • Improve README
  • Make ACTIVE_LOCK private.

1.5.3 #

  • Removed static global variables that controls playback.
  • Refactor MPRIS and SMTC media controllers.
  • MPRIS and SMTC now update their position.
  • Removed loops that wait on a valid duration for media controllers.
  • CD works with different branches.

1.5.2 #

  • Add default timebase (thanks @Yesterday17)
  • Workflow commits use "CD" instead of "CI".
  • Code gen is run when lib.rs is changed.

1.5.1 #

  • Improved preload performance (stream is created in a different thread).
  • Fix stop() not working during playback.
  • Fix gapless playback for Android.

1.5.0 #

  • Add support for gapless playback.
  • Fix panic when a file's timebase is None.

1.4.5 #

  • BREAKING: These names are more generic since not every OS has a notification as a media controller.
    • Renamed showMediaNotification to useMediaController in SimpleAudio.init()
    • Renamed androidCompactPlaybackActions to androidCompactActions in SimpleAudio.init()
    • Renamed NotificationActions to MediaControlAction
  • Update flutter_rust_bridge
    • Enums are generated in camelCase.
    • Rust can take a list of MediaControlAction instead of ints.
  • Refactored decoder
    • Prevent multiple playbacks happening after spamming open()
  • Update example/docs

1.4.4 #

  • Handle hot restarts.

1.4.3 #

  • Fix method channel being used for incorrect platforms when looping playback.

1.4.2 #

  • Add missing Android libs from CI fail.

1.4.1 #

  • Fix progress bar on media notifications not changing after loop.
  • Fix simple_audio blocking when stop() is called twice.
  • Update example.
  • Other changes
    • Formatting (Rust, Kotlin)
    • Refactoring (Rust)

1.4.0 #

  • Support changing output devices.
  • Remove playback error handling.
    • The main cause of this was the output device changing.

1.3.0 #

  • Allow user to handle errors. The following errors can be handled in Dart:
    • Fail to open a file
    • Error in network stream (ex. the URL is no longer valid)
    • Error decoding the file (ex. the file isn't formatted correctly)
    • Error during playback (ex. the device that was outputting is no longer available)
  • Fix the playback state not being updated when calling open()

1.2.1 #

  • Fix Android CMake
  • Update Flutter Rust Bridge

1.2.0 #

  • Added the option to normalize volume.
  • Improve documentation.

1.1.0 #

1.0.7 #

  • Remove some Android setup requirements.
  • Fix foreground service keeping Android app alive.
    • The fix uses endProcess which is like force stopping the app. If you have a better solution to this, submit an issue or PR.

1.0.6 #

  • Streaming with HTTP Range header for network files.
  • Stream HLS files by downloading the given parts on demand.

1.0.5 #

  • Add the ability to loop.
  • Update Rust dependencies.
  • Improve Rust codebase with clippy suggestions.

1.0.4 #

  • Media controllers can take images as bytes.
  • Android: Playback not working when reopening app

1.0.3 #

  • Improved README
  • Added license headers to files that were missing it
  • iOS calling play/pause quickly stops playback

1.0.2 #

  • Build scripts download binaries (for pub.dev)

1.0.1 #

  • Set versions in pubspec.yaml
  • Simplified Linux CMAKE
  • Fixed macOS dylib trying to link to a file on GitHub Actions.

1.0.0 #

First version