C# - 以编程方式修改 WMA 扩展属性(可能使用 NAudio)

本文关键字:NAudio 属性 扩展 编程 方式 WMA 修改 | 更新日期: 2023-09-27 18:30:31

我需要以编程方式修改我拥有的几百个 WMA 文件的 Title 属性。

我一直在用头撞墙,试图处理这个问题已经有一段时间了。 有一些库声称能够处理这个问题,但文档非常差。 我已经下载了 NAudio,并怀疑有一种方法可以处理我需要的东西,但文档再次严重不足以完成任务。

有没有人知道如何修改现有 WMA 文件的扩展属性?

C# - 以编程方式修改 WMA 扩展属性(可能使用 NAudio)

我在sourceforge上找到了一个项目,它让我能够根据需要修改标题属性。

该项目位于: http://professionaltag.sourceforge.net/

源代码示例是包含多个项目的解决方案。 对我来说,我最终没有使用作者提供的 UI,而是围绕适当的类滚动了我自己的 UI。 我需要的是"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();
        }            
    }