update FFME to fix IsDisposed issue: unosquare/ffmediaelement#147

This commit is contained in:
Paddy Xu
2018-02-01 20:35:17 +02:00
parent 804876a987
commit aa716dd04b
6 changed files with 2125 additions and 1549 deletions

View File

@@ -111,26 +111,7 @@ namespace QuickLook.Plugin.VideoViewer
try try
{ {
CoverArt = null; CoverArt = null;
if (mediaElement.IsOpening) mediaElement.Dispose();
{
void DelayedDisposeEvent(object sender, PropertyChangedEventArgs propertyChangedEventArgs)
{
var me = (Unosquare.FFME.MediaElement) sender;
if (propertyChangedEventArgs.PropertyName != nameof(me.IsPlaying))
return;
if (me.IsPlaying != true)
return;
me.PropertyChanged -= DelayedDisposeEvent;
me.IsMuted = true;
Task.Delay(200).ContinueWith(t => me.Dispose());
}
mediaElement.PropertyChanged += DelayedDisposeEvent;
}
else
mediaElement.Dispose();
mediaElement = null; mediaElement = null;
} }
@@ -253,10 +234,10 @@ namespace QuickLook.Plugin.VideoViewer
{ {
UpdateMeta(path); UpdateMeta(path);
mediaElement.Source = new Uri(path);
mediaElement.Volume = 0.5; mediaElement.Volume = 0.5;
mediaElement.Source = new Uri(path);
mediaElement.Play(); mediaElement.MediaOpened += (sender, e) => mediaElement?.Play();
} }
[NotifyPropertyChangedInvocator] [NotifyPropertyChangedInvocator]

File diff suppressed because it is too large Load Diff