Skip to content

Commit 5699e2c

Browse files
committed
WindowのUnloadでPlayerを破棄する
1 parent 3c30739 commit 5699e2c

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

LoopMusicPlayer/ViewModels/MainViewModel.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,15 @@ public MainViewModel()
166166
return;
167167
}
168168

169+
public void OnWindowUnloaded(object? sender, EventArgs e)
170+
{
171+
if (this.Player is null)
172+
return;
173+
this.Player.Stop();
174+
this.Player.Dispose();
175+
this.Player = null;
176+
}
177+
169178
private void CheckPropertyChanged(object? sender, PropertyChangedEventArgs e)
170179
{
171180
switch (e.PropertyName)

LoopMusicPlayer/Views/MainWindow.axaml.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,22 @@ public MainWindow()
1212
{
1313
InitializeComponent();
1414
this.AddHandler(DragDrop.DropEvent, OnDrop);
15-
this.AddHandler(LoadedEvent, OnLoaded);
15+
this.AddHandler(LoadedEvent, OnWindowLoaded);
16+
this.AddHandler(UnloadedEvent, OnWindowUnloaded);
1617
}
1718

18-
private void OnLoaded(object? sender, EventArgs e)
19+
private void OnWindowLoaded(object? sender, EventArgs e)
1920
{
2021
var viewModel = this.DataContext as MainViewModel;
2122
if (viewModel is not null)
2223
viewModel.PropertyChanged += OnChangeTopmost;
2324
}
25+
private void OnWindowUnloaded(object? sender, EventArgs e)
26+
{
27+
var viewModel = this.DataContext as MainViewModel;
28+
if (viewModel is not null)
29+
viewModel.OnWindowUnloaded(sender, e);
30+
}
2431

2532
private void OnDrop(object? sender, DragEventArgs e) {
2633
var files = e.Data.GetFiles();

0 commit comments

Comments
 (0)