private static Id3Frame DecodeLyrics(byte[] data) { var frame = new LyricsFrame { EncodingType = (Id3TextEncoding)data[0] }; string language = TextEncodingHelper.GetDefaultEncoding().GetString(data, 1, 3).ToLowerInvariant(); if (!Enum.IsDefined(typeof(Id3Language), language)) { frame.Language = Id3Language.eng; } else { frame.Language = (Id3Language)Enum.Parse(typeof(Id3Language), language, true); } string[] splitStrings = TextEncodingHelper.GetSplitStrings(data, 4, data.Length - 4, frame.EncodingType); if (splitStrings.Length > 1) { frame.Description = splitStrings[0]; frame.Lyrics = splitStrings[1]; } else if (splitStrings.Length == 1) { frame.Lyrics = splitStrings[0]; } return(frame); }
protected override Id3Tag[] GetTagInfo(Id3Tag tag) { var service = new LyricWiki2(); string lyrics = service.GetLyrics(tag.Artists.Value[0], tag.Title.Value); if (string.IsNullOrEmpty(lyrics)) { return(Id3Tag.Empty); } var lyricsFrame = new LyricsFrame { Lyrics = lyrics, }; var result = new Id3Tag(); result.Lyrics.Add(lyricsFrame); return(new[] { result }); }