|
| 1 | +## 0.0.9 |
| 2 | + |
| 3 | +- Now you can listen to playback events using `stream` (a broadcast stream) inside `AudioPlayer`. This was a great problem in earlier version as one always needs to trigger UI updates whenever playback progresses, ends etc. |
| 4 | +- One of the big problems in earlier version was that there was no way to detect if an audio playback has ended after completion. Resulting in issues like #25 & #26. Now `audio.isCompleted` stores `bool` if an audio has ended, same can be accessed from `stream`. |
| 5 | +- Added a new `Queue` class to play audio files sequentially, without having to deal with things like `audio.isCompleted` etc. manually. |
| 6 | +- Added methods to deal with `Queue` or repeat playback etc. |
| 7 | +- Now you can provide any random `id` while creating new instance of `AudioPlayer`, this was a big problem earlier as new `id` had to be consecutive to earlier one. |
| 8 | +- Now you can access same instance of `AudioPlayer` even if you make new constructor, by providing same `id`. |
| 9 | +- Now asset files can be played & loaded into `AudioPlayer` using `load` method. |
| 10 | + - `AudioSource` class has two static methods |
| 11 | + - `AudioSource.fromFile` to load an audio file. |
| 12 | + - `AudioSource.fromAsset` to load an audio asset. |
| 13 | +- Now audio field stores `Audio` object, inside the AudioPlayer class & contains following fields to get information about current playback. |
| 14 | + - `file`: Current loaded `File`. |
| 15 | + - `isPlaying` : Whether file is playing. |
| 16 | + - `isCompleted`: Whether file is ended playing. |
| 17 | + - By default once playback is ended, `stop` method is called & `AudioPlayer` is reverted to initial configuration. |
| 18 | + - `isStopped`: Whether file is loaded. |
| 19 | + - `position`: Position of current playback in `Duration`. |
| 20 | + - `duration`: Duration of current file in `Duration`. |
| 21 | +- Now contructor of `AudioPlayer` no longer calls async methods, which could result in false assertions. |
| 22 | +- Now `ma_resource_manager` is used from `miniaudio_engine` with `MA_DATA_SOURCE_FLAG_STREAM` flag. |
| 23 | + - This will improve general performance during playback, as whole file will not be loaded into memory. |
| 24 | +- Structure of code improved & separated into various files & classes. |
| 25 | +- Now device handling is present in an entirely separate class `AudioDevices`. |
| 26 | +- Improvements to how methods are identified & called in method channel. `flutter_types.hpp` improves code readability. |
| 27 | +- Other bugs that randomly caused termination after false assertions are also fixed to an extent. |
| 28 | +- Removed wave & noise APIs temporarily. Apologies to everyone & [MichealReed](https;//github.com/MichealReed). |
| 29 | + |
1 | 30 | ## 0.0.8 |
2 | 31 |
|
3 | 32 | **Multiple player instances, wave & noise methods** |
|
0 commit comments