C# - Изменить расширенные свойства WMA программно (возможно, с помощью NAudio)

Мне нужно программно изменить свойство Title пары сотен файлов WMA, которые у меня есть.

Я бился головой о стену, пытаясь справиться с этим некоторое время. Есть несколько библиотек, которые утверждают, что могут справиться с этим, но документация крайне скудная. Я скачал NAudio и подозреваю, что есть способ справиться с тем, что мне нужно, но опять-таки документация крайне не соответствует задаче.

У кого-нибудь есть понимание того, как изменить расширенные свойства существующего файла WMA?

1 ответ

Решение

Я нашел проект на sourceforge, который позволил мне изменить свойство title по мере необходимости.

Проект находится здесь: http://professionaltag.sourceforge.net/

Пример исходного кода представляет собой решение с несколькими проектами. Что касается меня, я не стал использовать пользовательский интерфейс, предоставленный автором, и развернул свой собственный вокруг соответствующих классов. Что мне было нужно, так это в проекте "Tag", в частности в классе Tags.ASF.ASFTagInfo. Класс может быть использован как есть, или рассечен при необходимости. Я использовал его без изменений.

Ниже я предлагаю метод, который я использую для изменения информации о треке. Для моих целей я хочу изменить название дорожки только в том случае, если последние 2 символа имени файла являются цифрами, но концепция одинакова для любых изменений, которые вы хотите внести.

    private void ModifyTrackInfo(string PathToWMA)
    {
        // "Last()" is an extension method on string defined elsewhere in project
        //      it simply get the to get the specified number of trailing characters of a string 
        string last2String = System.IO.Path.GetFileNameWithoutExtension(PathToWMA).Last(2);

        int last2Int;
        if (int.TryParse(last2String, out last2Int))
        {
            Tags.ASF.ASFTagInfo tagInfo = new Tags.ASF.ASFTagInfo(PathToWMA, true);                
            tagInfo.ContentDescription.Title =  string.Format("Track {0}", last2String);                
            tagInfo.Save();
        }            
    }
Другие вопросы по тегам