diff --git a/Harmonia.UI/ViewModels/MainViewModel.cs b/Harmonia.UI/ViewModels/MainViewModel.cs index 4399bc1..87c7631 100644 --- a/Harmonia.UI/ViewModels/MainViewModel.cs +++ b/Harmonia.UI/ViewModels/MainViewModel.cs @@ -2,5 +2,5 @@ public partial class MainViewModel : ViewModelBase { - public string Greeting => "Welcome to Avalonia!"; + public static string Greeting => "Welcome to Avalonia!"; } diff --git a/Harmonia.UI/ViewModels/PlaybackBarViewModel.cs b/Harmonia.UI/ViewModels/PlaybackBarViewModel.cs index 93cd116..d32cbf6 100644 --- a/Harmonia.UI/ViewModels/PlaybackBarViewModel.cs +++ b/Harmonia.UI/ViewModels/PlaybackBarViewModel.cs @@ -16,7 +16,7 @@ using System.Windows.Input; namespace Harmonia.UI.ViewModels; -public partial class PlaybackBarViewModel : ViewModelBase +public partial class PlaybackBarViewModel : ViewModelBase, IDisposable { private readonly IAudioPlayer _audioPlayer; private readonly IAudioImageCache _audioImageCache; @@ -52,6 +52,7 @@ public partial class PlaybackBarViewModel : ViewModelBase } private set { + _songImageSource?.Dispose(); _songImageSource = value; OnPropertyChanged(); } @@ -217,4 +218,10 @@ public partial class PlaybackBarViewModel : ViewModelBase { _audioPlayer.NextAsync(); } + + public void Dispose() + { + SongImageSource?.Dispose(); + GC.SuppressFinalize(this); + } } \ No newline at end of file diff --git a/Harmonia.UI/ViewModels/PlayingSongInfoViewModel.cs b/Harmonia.UI/ViewModels/PlayingSongInfoViewModel.cs index 29f815f..9348edd 100644 --- a/Harmonia.UI/ViewModels/PlayingSongInfoViewModel.cs +++ b/Harmonia.UI/ViewModels/PlayingSongInfoViewModel.cs @@ -11,7 +11,7 @@ using System.Threading.Tasks; namespace Harmonia.UI.ViewModels; -public class PlayingSongInfoViewModel : ViewModelBase +public class PlayingSongInfoViewModel : ViewModelBase, IDisposable { private readonly IAudioPlayer _audioPlayer; private readonly IAudioImageCache _audioImageCache; @@ -41,6 +41,7 @@ public class PlayingSongInfoViewModel : ViewModelBase } private set { + _songImageSource?.Dispose(); _songImageSource = value; OnPropertyChanged(); } @@ -88,4 +89,10 @@ public class PlayingSongInfoViewModel : ViewModelBase using MemoryStream stream = new(songPictureInfo.Data); SongImageSource = new(stream); } + + public void Dispose() + { + SongImageSource?.Dispose(); + GC.SuppressFinalize(this); + } } \ No newline at end of file diff --git a/Harmonia.UI/Views/PlaybackBar.axaml b/Harmonia.UI/Views/PlaybackBar.axaml index 6f13f91..f02395b 100644 --- a/Harmonia.UI/Views/PlaybackBar.axaml +++ b/Harmonia.UI/Views/PlaybackBar.axaml @@ -82,7 +82,7 @@ - + + + + + + + +