public void SetNewLyric(Lyrics lyric, MetaString metaArtist, MetaString metaTitle) { StopWork(); _lyricList = lyric?.LyricSentencs ?? new List <Sentence>(); _lyricList.Insert(0, new Sentence($"{metaArtist.ToUnicodeString()} - {metaTitle.ToUnicodeString()}", 0)); }
/// <summary> /// Call lyric provider to check lyric /// </summary> public void SetLyricSynchronously() { if (!LyricWindow.IsVisible) { return; } Task.Run(async() => { if (_searchLyricTask?.IsTaskBusy() == true) { await Task.WhenAny(_searchLyricTask); } _searchLyricTask = Task.Run(async() => { if (!_controller.IsPlayerReady) { return; } var lyricInst = Service.Get <LyricsInst>(); var meta = _controller.PlayList.CurrentInfo.OsuFile.Metadata; MetaString metaArtist = meta.ArtistMeta; MetaString metaTitle = meta.TitleMeta; var lyric = await lyricInst.LyricProvider.GetLyricAsync(metaArtist.ToUnicodeString(), metaTitle.ToUnicodeString(), (int)_controller.Player.Duration.TotalMilliseconds); LyricWindow.SetNewLyric(lyric, metaArtist, metaTitle); LyricWindow.StartWork(); }); }); }