Skip to content

Commit 37327b6

Browse files
committed
fixing minor issues with playlist
1 parent 3892e77 commit 37327b6

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

Unosquare.FFME.Windows.Sample/AppCommands.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,11 @@ internal AppCommands()
164164
{
165165
if (arg is CustomPlaylistEntry entry)
166166
{
167-
App.ViewModel.Playlist.Entries.RemoveEntryByMediaSource(entry.MediaSource);
168-
App.ViewModel.Playlist.Entries.SaveEntries();
167+
if (Uri.TryCreate(entry.MediaSource, UriKind.RelativeOrAbsolute, out var mediaSource))
168+
{
169+
App.ViewModel.Playlist.Entries.RemoveEntryByMediaSource(mediaSource);
170+
App.ViewModel.Playlist.Entries.SaveEntries();
171+
}
169172
}
170173
}));
171174
}

Unosquare.FFME.Windows.Sample/Foundation/CustomPlaylistEntryCollection.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ public CustomPlaylistEntryCollection(PlaylistViewModel viewModel)
4444
/// </summary>
4545
/// <param name="mediaSource">The media URL.</param>
4646
/// <returns>The playlist entry or null if not found.</returns>
47-
public CustomPlaylistEntry FindEntryByMediaSource(string mediaSource)
47+
public CustomPlaylistEntry FindEntryByMediaSource(Uri mediaSource)
4848
{
4949
lock (SyncRoot)
5050
{
51-
var lookupMediaSource = mediaSource?.Trim() ?? string.Empty;
51+
var lookupMediaSource = mediaSource?.OriginalString ?? string.Empty;
5252
foreach (var entry in this)
5353
{
5454
if (lookupMediaSource.Equals(entry.MediaSource, StringComparison.OrdinalIgnoreCase))
@@ -68,7 +68,7 @@ public void AddOrUpdateEntry(Uri mediaSource, MediaInfo info)
6868
{
6969
lock (SyncRoot)
7070
{
71-
var entry = FindEntryByMediaSource(mediaSource.OriginalString);
71+
var entry = FindEntryByMediaSource(mediaSource);
7272
if (entry == null)
7373
{
7474
// Create a new entry with default values
@@ -130,13 +130,12 @@ public void AddOrUpdateEntry(Uri mediaSource, MediaInfo info)
130130
/// Sets the entry thumbnail.
131131
/// Deletes the prior thumbnail file is found or previously set.
132132
/// </summary>
133-
/// <param name="info">The media info.</param>
133+
/// <param name="mediaSource">The media info.</param>
134134
/// <param name="bitmap">The bitmap.</param>
135-
public void AddOrUpdateEntryThumbnail(MediaInfo info, BitmapDataBuffer bitmap)
135+
public void AddOrUpdateEntryThumbnail(Uri mediaSource, BitmapDataBuffer bitmap)
136136
{
137137
lock (SyncRoot)
138138
{
139-
var mediaSource = info.MediaSource;
140139
var entry = FindEntryByMediaSource(mediaSource);
141140
if (entry == null) return;
142141

@@ -160,7 +159,7 @@ public void AddOrUpdateEntryThumbnail(MediaInfo info, BitmapDataBuffer bitmap)
160159
/// Removes the entry.
161160
/// </summary>
162161
/// <param name="mediaSource">The media source.</param>
163-
public void RemoveEntryByMediaSource(string mediaSource)
162+
public void RemoveEntryByMediaSource(Uri mediaSource)
164163
{
165164
lock (SyncRoot)
166165
{

Unosquare.FFME.Windows.Sample/ViewModels/PlaylistViewModel.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,18 +194,16 @@ private void OnRenderingVideo(object sender, RenderingVideoEventArgs e)
194194
if (HasTakenThumbnail) return;
195195

196196
var state = e.EngineState;
197-
var mediaElement = sender as MediaElement;
198-
var info = mediaElement?.MediaInfo;
199197

200-
if (string.IsNullOrWhiteSpace(info?.MediaSource))
198+
if (state.Source == null)
201199
return;
202200

203201
if (!state.HasMediaEnded && state.Position.TotalSeconds < snapshotPosition &&
204202
(!state.PlaybackEndTime.HasValue || state.PlaybackEndTime.Value.TotalSeconds > snapshotPosition))
205203
return;
206204

207205
HasTakenThumbnail = true;
208-
Entries.AddOrUpdateEntryThumbnail(info, e.Bitmap);
206+
Entries.AddOrUpdateEntryThumbnail(state.Source, e.Bitmap);
209207
Entries.SaveEntries();
210208
}
211209
}

0 commit comments

Comments
 (0)