void Mp3Player_SongChanged(object sender, SongChangedEventArgs e)
 {
     _slider.Visibility = Visibility.Visible;
     //canReposition = SongViewModel.GetId(e.Id).Song.DownloadState == "complete";
     canReposition = true;
     _slider.Cursor = canReposition ? System.Windows.Input.Cursors.Hand : System.Windows.Input.Cursors.No;
     if (_slider.Maximum != e.Total)
     {
         da.To = 0;
         anim.Begin();
         _slider.Maximum = e.Total;
     }
 }
 void OnMp3PlayerSongChanged(object sender, SongChangedEventArgs e)
 {
     source.Clear();
     SongViewModel svm = SongViewModel.GetId(e.Id);
     if (svm == null) return;
     var lrcPath = Path.Combine(Global.AppSettings["DownloadFolder"], svm.FileNameBase + ".lrc");
     if (!File.Exists(lrcPath))
         lrcPath = Path.Combine(Global.BasePath, "cache", e.Id + ".lrc");
     if (!File.Exists(lrcPath))
     {
         Task.Run(async () =>
         {
             var url = svm.Song.UrlLrc;
             if (string.IsNullOrEmpty(url))
             {
                 var json = await NetAccess.Json(XiamiUrl.url_song, "id", svm.Id);
                 if (json.song != null)
                     json = json.song;
                 url = MusicHelper.Get(json, "lyric", "song_lrc");
                 if (string.IsNullOrEmpty(url))
                     return;
             }
             string lrcText = await Http.Get(url, null);
             File.WriteAllText(lrcPath, lrcText);
             var f = LyricViewModel.LoadLrcFile(lrcPath);
             UIHelper.RunOnUI(() =>
             {
                 foreach (var item in f)
                 {
                     source.Add(item);
                 }
                 timelist = source.Select(x => x.Time.TotalMilliseconds).ToArray();
             });
         });
         return;
     }
     var s = LyricViewModel.LoadLrcFile(lrcPath);
     foreach (var item in s)
     {
         source.Add(item);
     }
     timelist = source.Select(x => x.Time.TotalMilliseconds).ToArray();
 }