Example #1
0
 /// <summary>
 /// 获得歌词信息
 /// </summary>
 /// <param name="LrcPath">歌词路径</param>
 /// <returns>返回歌词信息(Lrc实例)</returns>
 public static Lrc InitLrc(List<string> LrcData)
 {
     try
     {
         Lrc lrc = new Lrc();
         foreach (var line in LrcData)
         {
             if (line.StartsWith("[ti:"))
             {
                 lrc.Title = SplitInfo(line);
             }
             else if (line.StartsWith("[ar:"))
             {
                 lrc.Artist = SplitInfo(line);
             }
             else if (line.StartsWith("[al:"))
             {
                 lrc.Album = SplitInfo(line);
             }
             else if (line.StartsWith("[by:"))
             {
                 lrc.LrcBy = SplitInfo(line);
             }
             else if (line.StartsWith("[offset:"))
             {
                 lrc.Offset = SplitInfo(line);
             }
             else
             {
                 Regex regex = new Regex(@"\[([0-9.:]*)\]+(.*)", RegexOptions.Compiled);
                 MatchCollection mc = regex.Matches(line);
                 double time = TimeSpan.Parse("00:" + mc[0].Groups[1].Value).TotalMilliseconds;
                 string word = mc[0].Groups[2].Value;
                 lrc.LrcWord.Add(time, word);
             }
         }
         return lrc;
     }
     catch (Exception)
     {
         return null;
     }
 }
 private void LoadLrc(Lrc lrcdata)
 {
     LrcData = lrcdata;
     lrcdatapanel.Children.Clear();
     LrcTimeLines.Clear();
     foreach (var item in lrcdata.LrcWord)
     {
         var textblock = new TextBlock();
         textblock.Style = (Style)Resources["unlrcview"];
         textblock.Text = item.Value;
         LrcTimeLines.Add(TimeSpan.FromMilliseconds(item.Key));
         lrcdatapanel.Children.Add(textblock);
     }
     
     if(Class.MediaControl.GetCurrent().CurrentState==Windows.Media.Playback.MediaPlayerState.Playing)
     {
         LrcUpdateTimer.Start();
     }
 }