예제 #1
0
        public static async void AudioMediaPlaybackList_CurrentItemChanged(MediaPlaybackList sender, CurrentMediaPlaybackItemChangedEventArgs args)
        {
            if (args.NewItem == null)
            {
                RequestSyncPlayList();
                return;
            }

            NowPlaying = (int)HyPlayList.PlaybackList.CurrentItemIndex;
            if (!MPIToIndex.ContainsKey(args.NewItem))
            {
                return;
            }

            HyPlayItem hpi = List[MPIToIndex[args.NewItem]];
            AudioInfo  ai  = hpi.AudioInfo;

            //LoadSystemPlayBar(MPIToIndex[args.NewItem]);
            if (hpi.ItemType == HyPlayItemType.Netease && hpi.AudioInfo.Lyric == null)
            {
                PureLyricInfo lrcs = await LoadNCLyric(hpi);

                ai.Lyric   = lrcs.PureLyrics;
                ai.TrLyric = lrcs.TrLyrics;
            }
            //先进行歌词转换以免被搞
            Lyrics = Utils.ConvertPureLyric(ai.Lyric);
            Utils.ConvertTranslation(ai.TrLyric, Lyrics);
            hpi.AudioInfo = ai;
            //这里为调用订阅本事件的元素
            Invoke(() => OnPlayItemChange?.Invoke(hpi));
        }
예제 #2
0
 private static async void Player_SourceChanged(MediaPlayer sender, object args)
 {
     if (List.Count <= NowPlaying)
     {
         return;
     }
     //当加载一个新的播放文件时,此时你应当加载歌词和SMTC
     //加载SMTC
     ControlsDisplayUpdater.Type = MediaPlaybackType.Music;
     ControlsDisplayUpdater.MusicProperties.Artist     = NowPlayingItem.AudioInfo.Artist;
     ControlsDisplayUpdater.MusicProperties.AlbumTitle = NowPlayingItem.AudioInfo.Album;
     ControlsDisplayUpdater.MusicProperties.Title      = NowPlayingItem.AudioInfo.SongName;
     //因为加载图片可能会高耗时,所以在此处加载
     Invoke(() => OnPlayItemChange?.Invoke(NowPlayingItem));
     //加载歌词
     LoadLyrics(NowPlayingItem);
     ControlsDisplayUpdater.Thumbnail = NowPlayingItem.isOnline ? RandomAccessStreamReference.CreateFromUri(new Uri(NowPlayingItem.NcPlayItem.Album.cover)) : RandomAccessStreamReference.CreateFromStream(await NowPlayingItem.AudioInfo.LocalSongFile.GetThumbnailAsync(ThumbnailMode.MusicView, 9999));
     ControlsDisplayUpdater.Update();
 }
예제 #3
0
        public static void AudioMediaPlaybackList_CurrentItemChanged(MediaPlaybackList sender, CurrentMediaPlaybackItemChangedEventArgs args)
        {
            if (args.NewItem == null)
            {
                RequestSyncPlayList();
                return;
            }

            NowPlaying = (int)HyPlayList.PlaybackList.CurrentItemIndex;
            if (!MPIToIndex.ContainsKey(args.NewItem))
            {
                return;
            }

            HyPlayItem hpi = List[MPIToIndex[args.NewItem]];
            AudioInfo  ai  = hpi.AudioInfo;

            hpi.AudioInfo = ai;
            //LoadSystemPlayBar(MPIToIndex[args.NewItem]);
            LoadLyrics(hpi);
            //这里为调用订阅本事件的元素
            Invoke(() => OnPlayItemChange?.Invoke(hpi));
        }