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