コード例 #1
0
        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);
        }
コード例 #2
0
        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 });
        }