@@ -17,6 +17,7 @@ public MediaPreview(MediaPreviewViewModel model)
17
17
ViewModel = model ;
18
18
InitializeComponent ( ) ;
19
19
PlayerContext . Loaded += PlayerContext_Loaded ;
20
+ PlayerContext . Unloaded += PlayerContext_Unloaded ;
20
21
Unloaded += MediaPreview_Unloaded ;
21
22
}
22
23
@@ -29,13 +30,20 @@ private void PlayerContext_Loaded(object sender, RoutedEventArgs e)
29
30
ViewModel . TogglePlaybackRequested += TogglePlaybackRequestInvoked ;
30
31
}
31
32
33
+ private void PlayerContext_Unloaded ( object sender , RoutedEventArgs e )
34
+ {
35
+ PlayerContext . MediaPlayer . VolumeChanged -= MediaPlayer_VolumeChanged ;
36
+ ViewModel . TogglePlaybackRequested -= TogglePlaybackRequestInvoked ;
37
+ }
38
+
32
39
private void MediaPreview_Unloaded ( object sender , RoutedEventArgs e )
33
40
{
34
41
// The MediaPlayerElement isn't properly disposed by Windows so we set the source to null
35
42
// to avoid issues the next time the control is used.
36
43
PlayerContext . Source = null ;
37
44
38
45
PlayerContext . Loaded -= PlayerContext_Loaded ;
46
+ PlayerContext . Unloaded -= PlayerContext_Unloaded ;
39
47
Unloaded -= MediaPreview_Unloaded ;
40
48
}
41
49
@@ -47,7 +55,7 @@ private void MediaPlayer_VolumeChanged(MediaPlayer sender, object args)
47
55
}
48
56
}
49
57
50
- private void TogglePlaybackRequestInvoked ( object sender , EventArgs e )
58
+ private void TogglePlaybackRequestInvoked ( object ? sender , EventArgs e )
51
59
{
52
60
if ( PlayerContext . MediaPlayer . PlaybackSession . PlaybackState is not MediaPlaybackState . Playing )
53
61
{
0 commit comments