From 269704b7f97d03ac30cb9de3c5f1028ab2153318 Mon Sep 17 00:00:00 2001 From: Railway Date: Fri, 14 Jul 2023 09:34:40 +0700 Subject: [PATCH] #8 Add the way to use without init --- MauiAudio.Sample/Services/PlayerService.cs | 4 ++-- MauiAudio/INativeAudioService.cs | 1 + MauiAudio/MauiAudio.csproj | 2 +- MauiAudio/NativeAudioService.android.cs | 2 ++ MauiAudio/NativeAudioService.macios.cs | 2 ++ MauiAudio/NativeAudioService.windows.cs | 2 ++ README.md | 19 +++++++++++++++++-- 7 files changed, 27 insertions(+), 5 deletions(-) diff --git a/MauiAudio.Sample/Services/PlayerService.cs b/MauiAudio.Sample/Services/PlayerService.cs index 4c4f2a3..4fd3155 100644 --- a/MauiAudio.Sample/Services/PlayerService.cs +++ b/MauiAudio.Sample/Services/PlayerService.cs @@ -17,9 +17,9 @@ public partial class PlayerService:ObservableObject public event EventHandler NewEpisodeAdded; public event EventHandler IsPlayingChanged; - public PlayerService(INativeAudioService audioService) + public PlayerService() { - this.audioService = audioService; + this.audioService = NativeAudioService.Current; PlayList = new List(); audioService.PlayNext += AudioService_PlayNext; audioService.PlayPrevious += AudioService_PlayPrevious; diff --git a/MauiAudio/INativeAudioService.cs b/MauiAudio/INativeAudioService.cs index 5490efd..ec9a525 100644 --- a/MauiAudio/INativeAudioService.cs +++ b/MauiAudio/INativeAudioService.cs @@ -2,6 +2,7 @@ public interface INativeAudioService { + public static INativeAudioService Current; Task InitializeAsync(string audioURI); Task InitializeAsync(MediaPlay media); Task PlayAsync(double position = 0); diff --git a/MauiAudio/MauiAudio.csproj b/MauiAudio/MauiAudio.csproj index ba6d153..0b6c5c4 100644 --- a/MauiAudio/MauiAudio.csproj +++ b/MauiAudio/MauiAudio.csproj @@ -12,7 +12,7 @@ 21.0 10.0.17763.0 10.0.17763.0 - 1.2.1 + 1.2.2 $(MSBuildProjectName.Replace(" ", "_")) $(MSBuildProjectName) Plugin.MauiAudio diff --git a/MauiAudio/NativeAudioService.android.cs b/MauiAudio/NativeAudioService.android.cs index 6705483..eabdfa4 100644 --- a/MauiAudio/NativeAudioService.android.cs +++ b/MauiAudio/NativeAudioService.android.cs @@ -8,6 +8,8 @@ namespace MauiAudio; public class NativeAudioService : INativeAudioService { + static NativeAudioService current; + public static INativeAudioService Current => current ??= new NativeAudioService(); IAudioActivity instance; double volume = 1; double balance = 0; diff --git a/MauiAudio/NativeAudioService.macios.cs b/MauiAudio/NativeAudioService.macios.cs index 8f0fcd9..7701403 100644 --- a/MauiAudio/NativeAudioService.macios.cs +++ b/MauiAudio/NativeAudioService.macios.cs @@ -6,6 +6,8 @@ namespace MauiAudio; public class NativeAudioService : INativeAudioService { + static NativeAudioService current; + public static INativeAudioService Current => current ??= new NativeAudioService(); //AVPlayer avPlayer; AVAudioPlayer avPlayer; float volume = 1; diff --git a/MauiAudio/NativeAudioService.windows.cs b/MauiAudio/NativeAudioService.windows.cs index b03fca1..1c63026 100644 --- a/MauiAudio/NativeAudioService.windows.cs +++ b/MauiAudio/NativeAudioService.windows.cs @@ -6,6 +6,8 @@ namespace MauiAudio; public class NativeAudioService : INativeAudioService { + static NativeAudioService current; + public static INativeAudioService Current => current ??= new NativeAudioService(); MediaPlayer mediaPlayer; public bool IsPlaying => mediaPlayer != null diff --git a/README.md b/README.md index 9185e23..7935d26 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,15 @@ Add the [NuGet package](https://www.nuget.org/packages/Plugin.MauiAudio/) to the - Select Plugin.MauiAudio ## Init - -In CreateMauiApp()[MauiProgram.cs] +#### Version ≥ 1.2.2 +No Need init! +Directly using it! +```c# +var audioService = NativeAudioService.Current; +``` #### Version ≥ 1.0.3: +In CreateMauiApp()[MauiProgram.cs] ```c# using MauiAudio; @@ -30,6 +35,7 @@ builder.UseMauiAudio() ``` #### Version < 1.0.3: +In CreateMauiApp()[MauiProgram.cs] ```c# #if WINDOWS @@ -123,6 +129,15 @@ await audioService.PauseAsync(); ``` ## Interface +### Version ≥ 1.2.2 + +```c# +public interface INativeAudioService +{ + public static INativeAudioService Current; + ······ +} +``` ### Version ≥ 1.0.6