private async void NowPlayingOnNowPlayingItemChanged(object sender, NowPlayingChangedEventArgs e)
 {
     await Dispatcher.RunAsync(CoreDispatcherPriority.High, async() =>
     {
         _nowPlayingViewModel.UpdateNowPlaying(e.NewItem);
         await LrcAutoSearch();
     });
 }
Пример #2
0
 private async void OnNowPlayingChanged(object sender, NowPlayingChangedEventArgs e)
 {
     await Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
                               () =>
     {
         CheckUpcomingVisibility();
         ViewModel.UpdateBindings();
     });
 }
Пример #3
0
 private async void OnNowPlayingChanged(object sender, NowPlayingChangedEventArgs e)
 {
     await Dispatcher.RunAsync(CoreDispatcherPriority.High,
                               () =>
     {
         HomeViewLoadProgress.IsActive = false;
         ShowNowPlaying();
         ViewModel.UpdateBindings(e.NewItem);
     });
 }
Пример #4
0
 private async void NowPlayingChanged(object sender, NowPlayingChangedEventArgs e)
 {
     await _dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
     {
         try
         {
             var newIndex = PlaybackControl.Instance.Items.IndexOf(e.NewItem);
             if (Math.Abs(newIndex - _lastKnownIndex) < 20)
             {
                 if (newIndex > _lastKnownIndex)
                 {
                     var remove      = Math.Min(Count, newIndex - _lastKnownIndex);
                     _lastKnownIndex = newIndex;
                     for (int i = 0; i < remove; i++)
                     {
                         RemoveItem(0);
                     }
                     AddInsufficientItems();
                 }
                 else if (newIndex < _lastKnownIndex)
                 {
                     var addedItems  = Subset(newIndex, _lastKnownIndex, PlaybackControl.Instance.Items).ToList();
                     _lastKnownIndex = newIndex;
                     for (int i = addedItems.Count - 1; i >= 0; i--)
                     {
                         InsertItem(0, addedItems[i]);
                     }
                     RemoveExceededItems();
                 }
             }
             else
             {
                 Clear();
                 _lastKnownIndex = newIndex;
                 foreach (var item in
                          Subset(_lastKnownIndex,
                                 Math.Min(_lastKnownIndex + _limit, PlaybackControl.Instance.Items.Count - 1),
                                 PlaybackControl.Instance.Items))
                 {
                     Add(item);
                 }
             }
         }
         catch { }
     });
 }
Пример #5
0
        private async void OnNowPlayingItemChanged(object sender, NowPlayingChangedEventArgs e)
        {
            await _dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
            {
                var metadata = e.NewItem?.File;
                if (metadata == null)
                {
                    return;
                }

                NowPlayingItem = e.NewItem;
                CheckFavorite();

                NowPlayingTitle     = metadata.Title;
                NowPlayingArtist    = metadata.Artist;
                NowPlayingAlbum     = metadata.Album;
                NowPlayingTotalTime = metadata.Duration;

                // Update cover, if available
                CoverImage = new ThumbnailTag
                {
                    Fallback      = "Album,AlbumPlaceholder",
                    AlbumName     = metadata.Album,
                    ArtistName    = metadata.Artist,
                    ThumbnailPath = metadata.Path,
                };
                if (!string.IsNullOrWhiteSpace(NowPlayingTitle))
                {
                    DesktopTitleViewConfiguration.SetTitleBarText(
                        string.Format(CommonSharedStrings.NowPlayingTitle, NowPlayingTitle));
                }
                else
                {
                    DesktopTitleViewConfiguration.SetTitleBarText(CommonSharedStrings.NowPlayingEmptyTitle);
                }
                //Call LrcAutoSearch on playlist item changed
                await LrcAutoSearch();
            });
        }
Пример #6
0
        private async void OnNowPlayingChanged(object sender, NowPlayingChangedEventArgs e)
        {
            await Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
            {
                if (!IsControlAvailable)
                {
                    IsControlAvailable = true;
                }
                if (e.NewItem == null)
                {
                    return;
                }
                // Update item
                NowPlayingItem = e.NewItem;
                CheckFavorite();
                // Update duration
                ItemDuration = NowPlayingItem.File.Duration.TotalMilliseconds;
                Position     = 0;
                Remaining    = ItemDuration;

                var metadata = Core.PlaybackControl.Instance.Current?.File;

                if (metadata != null)
                {
                    Title  = metadata.Title;
                    Artist = metadata.Artist;
                    Album  = metadata.Album;
                    // Update cover, if available
                    CoverImageTag = new ThumbnailTag
                    {
                        Fallback      = "Album,AlbumPlaceholder",
                        AlbumName     = metadata.Album,
                        ArtistName    = metadata.Artist,
                        ThumbnailPath = metadata.Path,
                    };
                }
            });
        }