示例#1
0
 private void ScrollTo(int mynewlove)
 {
     ((TextBlock)Lyrics.Children[mylove]).Foreground = new SolidColorBrush(Color.FromArgb(255, 60, 60, 60));
     mylove = mynewlove;
     ScrollContainer.ChangeView(1, SingleItemHeight * mylove, 1);
     ((TextBlock)Lyrics.Children[mylove]).Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
 }
示例#2
0
        public void GetLyrics(string songmid)
        {
            lyricsIndex = 0;
            mylove      = 0;
            if (keyframes.Count > 0)// 切歌了,清空容器
            {
                keyframes.Clear();
                Lyrics.Children.Clear();
                ScrollContainer.ChangeView(1, 0, 1);
            }
            Lyrics.Children.Add(HeadText = new TextBlock());
            HeadText.Height = ScrollContainer.ActualHeight / 2;

            Invoke(() =>
            {
                List <string> Result = Creeper.GetLyrics(songmid);   //Result[0]是原版,Result[1]是翻译版

                var lyrics = Result[0].Split(Environment.NewLine.ToCharArray());

                string Title, Artist, Album, LrcBy, Offset;

                foreach (var line in lyrics)
                {
                    if (line.StartsWith("[ti:"))
                    {
                        Title = line.Substring(line.IndexOf(":") + 1).TrimEnd(']');
                    }
                    else if (line.StartsWith("[ar:"))
                    {
                        Artist = line.Substring(line.IndexOf(":") + 1).TrimEnd(']');
                    }
                    else if (line.StartsWith("[al:"))
                    {
                        Album = line.Substring(line.IndexOf(":") + 1).TrimEnd(']');
                    }
                    else if (line.StartsWith("[by:"))
                    {
                        LrcBy = line.Substring(line.IndexOf(":") + 1).TrimEnd(']');
                    }
                    else if (line.StartsWith("[offset:"))
                    {
                        Offset = line.Substring(line.IndexOf(":") + 1).TrimEnd(']');
                    }
                    else
                    {
                        try
                        {
                            Regex regexword = new Regex(@".*\](.*)");
                            Match mcw       = regexword.Match(line);
                            string word     = mcw.Groups[1].Value;
                            if (word.Length != 0)
                            {
                                Regex regextime     = new Regex(@"\[([0-9.:]*)\]", RegexOptions.Compiled);
                                MatchCollection mct = regextime.Matches(line);
                                foreach (Match item in mct)
                                {                                                                            // day
                                    double time = TimeSpan.Parse("00:" + item.Groups[1].Value).TotalSeconds; // item.Groups[1].Value 00:40.44
                                    keyframes.Add(time);
                                    // 更新 UI,填入歌词
                                    Lyrics.Children.Add(new TextBlock {
                                        Text = word, HorizontalAlignment = HorizontalAlignment.Center
                                    });
                                }
                            }
                        }
                        catch { continue; }
                    }
                }
                keyframes.Add(99999.9);
                Lyrics.Children.Add(FootText = new TextBlock());
            });
        }