Skip to content

Releases: jfversluis/Plugin.Maui.Audio

v3.0.0: Recording Options

03 Jun 11:16
94ad09f
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: v2.1.0...v3.0.0

v3.0.0 Preview 3: All Kinds of Options!

06 May 11:03
1cfdf4c
Compare
Choose a tag to compare
Pre-release

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

30 Nov 14:45
f72d4b4
Compare
Choose a tag to compare

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!

27 Nov 14:11
4935a39
Compare
Choose a tag to compare
Pre-release

Updated the library to use .NET 8!

What's Changed

Full Changelog: v2.1.0...v3.0.0-preview1

v2.1.0: Duration & Dispose

27 Nov 08:33
215c5f6
Compare
Choose a tag to compare

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!

29 Sep 07:49
748f960
Compare
Choose a tag to compare

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

Full Changelog: v1.0.0...v2.0.0

v2.0.0 preview 2: async player support

11 Sep 08:33
748f960
Compare
Choose a tag to compare
Pre-release

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!

04 Sep 14:15
bb1a44f
Compare
Choose a tag to compare

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

Full Changelog: v1.0.0...v2.0.0-preview1

v1.0.0: The first stable release!

29 Nov 09:56
a4a2e0f
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: v0.1.0-preview2...v1.0.0

v0.1.0-preview2

03 Nov 13:46
dbf6abd
Compare
Choose a tag to compare
v0.1.0-preview2 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.1.0-preview1...v0.1.0-preview2