/// <summary> /// Adds all MediaFiles to the Queue and starts playing the first item /// </summary> /// <param name="mediaFiles"></param> /// <returns></returns> public async Task Play(IEnumerable <IMediaFile> mediaFiles) { MediaQueue.Clear(); MediaQueue.AddRange(mediaFiles); // Play from index 0 MediaQueue.SetIndexAsCurrent(0); await PlayCurrent(); MediaNotificationManager?.StartNotification(CurrentMediaFile); }
/// <summary> /// Adds all MediaFiles to the Queue and starts playing the first item /// </summary> /// <param name="mediaFiles"></param> /// <returns></returns> public async Task Play(IEnumerable <IMediaFile> mediaFiles) { var enumerable = mediaFiles as IList <IMediaFile> ?? mediaFiles.ToList(); MediaQueue.Clear(); MediaQueue.AddRange(enumerable); await Task.WhenAll( PlayNext(), GetMediaInformation(enumerable), Task.Run(() => MediaNotificationManager?.StartNotification(MediaQueue.Current))); }
public void Basic() { var queue = new MediaQueue(); var tracks = new[] { new MediaFile(), new MediaFile(), }; queue.AddRange(tracks); IList<NotifyCollectionChangedEventArgs> collectionChangedEvents = new List<NotifyCollectionChangedEventArgs>(); IList<PropertyChangedEventArgs> propertyChangedEvents = new List<PropertyChangedEventArgs>(); queue.CollectionChanged += (sender, e) => collectionChangedEvents.Add(e); queue.PropertyChanged += (sender, e) => propertyChangedEvents.Add(e); queue.Clear(); Assert.AreEqual(0, queue.Count); Assert.AreEqual(null, queue.Current); Assert.AreEqual(-1, queue.Index); Assert.AreEqual(RepeatType.None, queue.Repeat); Assert.AreEqual(false, queue.Shuffle); Assert.AreEqual(1, propertyChangedEvents.Where(e => e.PropertyName == "Current").Count()); Assert.AreEqual(1, propertyChangedEvents.Where(e => e.PropertyName == "Index").Count()); Assert.AreEqual(1, propertyChangedEvents.Where(e => e.PropertyName == "Count").Count()); Assert.AreEqual(3, propertyChangedEvents.Count); Assert.AreEqual(1, collectionChangedEvents.Where(e => e.NewItems == null && e.OldItems == null).Count()); Assert.AreEqual(1, collectionChangedEvents.Count); }