Releases: jfversluis/Plugin.Maui.Audio
v3.0.1: Bugs Fixed!
Just a point release that fixes some bugs! Enjoy!
What's Changed
- Remove the dependency on Maui controls by @bijington in #124
- Fixed CurrentPosition on android platform by @t871005y in #116
- Fix android crash Dispose() call in PlaybackEnded event by @ndegheselle in #122
- Fix the issue of the audio recording segment repeating at the end on the Android platform by @t871005y in #129
New Contributors
- @t871005y made their first contribution in #116
- @ndegheselle made their first contribution in #122
Full Changelog: v3.0.0...v3.0.1
v3.0.0: Recording Options
It's time! Version 3.0 of this plugin is hereby released!
If you have been on preview 3 of 3.0 then nothing has changed other than that this is labeled stable now. If you're coming from v2.1, find all the details and changes below.
Please note, there is a breaking change in here which has to do with setting the AsyncAudioPlayer.Speed
. This property does not have a setter anymore. Instead use the new SetSpeed()
method.
iOS & macOS Recording Session Options
For iOS (and macOS) you have different session options you can configure which determine how sound behaves whenever you start recording or playing something. Up until this version, we decided for you how that was handled, now we're putting this power in your hands!
While initializing this plugin you can now do this:
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.AddAudio(
playbackOptions =>
{
#if IOS || MACCATALYST
playbackOptions.Category = AVFoundation.AVAudioSessionCategory.Playback;
#endif
},
recordingOptions =>
{
#if IOS || MACCATALYST
recordingOptions.Category = AVFoundation.AVAudioSessionCategory.Record;
recordingOptions.Mode = AVFoundation.AVAudioSessionMode.Default;
recordingOptions.CategoryOptions = AVFoundation.AVAudioSessionCategoryOptions.DefaultToSpeaker;
#endif
})
And set the right recording and/or playback options for you.
If you're using the static instance, you can simply set it like this:
AudioManager.Current.SharedPlayerOptions = new
{
Category = AVFoundation.AVAudioSessionCategory.Playback;
}
Or if you want to create a player/recorder through the manager, you can pass in the options there too:
var player = AudioManager.Current.CreatePlayer(new
{
Category = AVFoundation.AVAudioSessionCategory.Playback;
});
AudioRecordingOptions
With the new AudioRecordingOptions
object we have gained fine-grained control over the different options that you can use for recording audio. You can now set sample rate, channels, bit depth and encoding and to top it all off there is a switch that allows you to throw an exception if one of the configured options is not supported on the platform you're running on. The power is in your hands!
Thank you @borrmann for all this goodness!
Bugfixes & other changes
And there is a good number of other changes too! Well, see all the details in the PRs listed below 👇
What's Changed
- Update to .NET 8 by @jfversluis in #76
- Add the source file for the nuget logo by @bijington in #79
- Make sure the cache file directory exists by @bijington in #78
- Correct the recording docs example and add the sample to playing by @bijington in #80
- Remove the set of Loop in the ctor for AudioPlayer by @bijington in #82
- Add README to NuGet Package by @jfversluis in #96
- Make note on how to get file path from recording clearer by @jfversluis in #99
- Generate test NuGets on PR builds by @jfversluis in #105
- Report generated NuGet package version to GitHub status by @jfversluis in #106
- Only add NuGet status for PRs by @jfversluis in #107
- Only push NuGet from main repo by @jfversluis in #110
- Provide options to allow for customising the iOS/macOS specific session settings by @bijington in #101
- Swap to using MixWithOthers for the AVAudioSessionCategoryOptions by @bijington in #111
- Recording options and Bug Fixes by @borrmann in #108
- fixes issues with seek and speed by @borrmann in #109
New Contributors
Full Changelog: v2.1.0...v3.0.0
v3.0.0 Preview 3: All Kinds of Options!
This is a crazy cool release thanks to @bijington and @borrmann! Why? Keep scrolling!
Please note, there is at least 1 breaking change in here which has to do with setting the AsyncAudioPlayer.Speed
. This property does not have a setter anymore. Instead use the new SetSpeed()
method.
iOS & macOS Recording Session Options
For iOS (and macOS) you have different session options you can configure which determine how sound behaves whenever you start recording or playing something. Up until this version, we decided for you how that was handled, now we're putting this power in your hands!
While initializing this plugin you can now do this:
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.AddAudio(
playbackOptions =>
{
#if IOS || MACCATALYST
playbackOptions.Category = AVFoundation.AVAudioSessionCategory.Playback;
#endif
},
recordingOptions =>
{
#if IOS || MACCATALYST
recordingOptions.Category = AVFoundation.AVAudioSessionCategory.Record;
recordingOptions.Mode = AVFoundation.AVAudioSessionMode.Default;
recordingOptions.CategoryOptions = AVFoundation.AVAudioSessionCategoryOptions.DefaultToSpeaker;
#endif
})
And set the right recording and/or playback options for you.
If you're using the static instance, you can simply set it like this:
AudioManager.Current.SharedPlayerOptions = new
{
Category = AVFoundation.AVAudioSessionCategory.Playback;
}
Or if you want to create a player/recorder through the manager, you can pass in the options there too:
var player = AudioManager.Current.CreatePlayer(new
{
Category = AVFoundation.AVAudioSessionCategory.Playback;
});
AudioRecordingOptions
With the new AudioRecordingOptions
object we have gained fine-grained control over the different options that you can use for recording audio. You can now set sample rate, channels, bit depth and encoding and to top it all off there is a switch that allows you to throw an exception if one of the configured options is not supported on the platform you're running on. The power is in your hands!
Thank you @borrmann for all this goodness!
Bugfixes
And there is a good number of bugfixes too! Mostly related to seeking within audio as well as setting the speed and then there is something with removing the temporary file that is used while recording on Android... Well, see all the details in the PRs listed below 👇
What's Changed
- Add README to NuGet Package by @jfversluis in #96
- Make note on how to get file path from recording clearer by @jfversluis in #99
- Provide options to allow for customising the iOS/macOS specific session settings by @bijington in #101
- Swap to using MixWithOthers for the AVAudioSessionCategoryOptions by @bijington in #111
- Recording options and Bug Fixes by @borrmann in #108
- fixes issues with seek and speed by @borrmann in #109
New Contributors
Full Changelog: v3.0.0-preview2...v3.0.0-preview3
v3.0.0 Preview 2: Minor Android Bugfixes
What's Changed
- Make sure the cache file directory exists by @bijington in #78
- Remove the set of Loop in the ctor for AudioPlayer by @bijington in #82
Full Changelog: v3.0.0-preview1...v3.0.0-preview2
v3.0.0 Preview 1: .NET 8 is here!
Updated the library to use .NET 8!
What's Changed
- Update to .NET 8 by @jfversluis in #76
Full Changelog: v2.1.0...v3.0.0-preview1
v2.1.0: Duration & Dispose
With this release the Duration
is reported in seconds on Android, which is now in line with the other platforms.
Also, the IAudio
interface was introduced in order to expose the Dispose
functionality to library consumers.
What's Changed
- Expose duration as seconds for Android by @bijington in #71
- Expose a load more properties/methods to AsyncAudioPlayer by @bijington in #72
Full Changelog: v2.0.0...v2.1.0
v2.0.0: Now with Audio Recording!
Many people have been asking for this and we (and with we I mean @cdavidyoung and @bijington) finally did it! Now you can also record audio with this plugin.
This release is identical to the preview 1 version we put out earlier.
What's Changed
- Feature/add audio recording by @bijington in #35
- Attempt at getting an async audio player working by @bijington in #36
Full Changelog: v1.0.0...v2.0.0
v2.0.0 preview 2: async player support
In this version we added support for a player that uses async/await 🎉
What's Changed
- Attempt at getting an async audio player working by @bijington in #36
Full Changelog: v2.0.0-preview1...v2.0.0-preview2
v2.0.0 preview 1: Now with Audio Recording!
Many people have been asking for this and we (and with we I mean @cdavidyoung and @bijington) finally did it! Now you can also record audio with this plugin.
Since this is a bigger change, releasing it as preview first. Let us know how you find it and open issues and/or PRs to make things even better.
What's Changed
- Feature/add audio recording by @bijington in #35
- Rename sample app by @jfversluis in #62
Full Changelog: v1.0.0...v2.0.0-preview1
v1.0.0: The first stable release!
After a good period of testing we decided that it's about time for the first stable version of this wonderful plugin!
With this v1 of the Plugin.Maui.Audio you're able to play audio clips, pause, play, set the speed and position and more in a very easy to use way! Let us know what you think while we are building towards the next version which will also include recording! A preview version of that will be landing soon.
What's Changed
- Unify/remove media position reset on Play by @jfversluis in #37
- Add Speed property by @SirJohnK in #26
New Contributors
Full Changelog: v0.1.0-preview2...v1.0.0