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)); }
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(); }
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)); }