Пример #1
0
        private static string GetId3v2TagTitle(TagLib.Id3v2.Frame frame)
        {
            if (frame == null || frame.FrameId == null)
            {
                return(null);
            }

            string tagName = frame.FrameId.ToString();

            // TODO: Handle NXXX
            if (tagName == "TXXX") // Non-native (user-defined) tag.
            {
                var regex      = new Regex("\\[.*\\]");
                var firstMatch = regex.Match(frame.ToString()).Value;

                //if (firstMatch.Length < 2) // There is no value between the brackets
                //    return null;

                tagName = firstMatch.Substring(1, firstMatch.Length - 2); // Trim the single pair of brackets surrounding title
            }

            bool success = Id3TagMap.TryGetValue(tagName, out string tag);

            return(success
                ? tag
                : tagName);
        }
Пример #2
0
        private static string GetID3v2TagValue(TagLib.Id3v2.Frame frame)
        {
            // TODO: Handle NXXX
            if (frame.FrameId == "TXXX") // Non-native (user-defined) tag.
            {
                var regex      = new Regex("\\] .*");
                var firstMatch = regex.Match(frame.ToString()).Value;
                var fieldValue = firstMatch.Substring(2); // Trim the leading bracket & space before value
                return(fieldValue);
            }

            return(frame.ToString());
        }