索引28中的“比特率”属性是否固定?

时间:2014-01-30 04:16:38

标签: c# shell bitrate file-properties

我正在尝试读取音频文件的“比特率”属性。我知道如何获得价值但是我这样做的方式我觉得不是最有效的。

Shell shell = new Shell32.Shell();
Folder objFolder = shell.NameSpace(path);
for (int i = 0; i < short.MaxValue; i++)
{
    string property = objFolder.GetDetailsOf(null, i);
    if (String.IsNullOrEmpty(property))
        break;
    if (property.Equals("Bit rate"))
    {
        index = i;
        break;
    }
}
FolderItem item = objFolder.ParseName(fileName);
string bitRateValue = objFolder.GetDetailsOf(item, index);

我担心的是,我需要得到“比特率”索引的循环,所以我的所有测试都返回索引28,因此我开始怀疑是否可以始终在索引28找到比特率?如果没有那么有没有更好的方法来找出比特率位于哪个位置?

1 个答案:

答案 0 :(得分:1)

经过一些研究和其他成员的帮助后,我得到了我想要的东西。这个答案适用于那些可能在这里寻找音频文件的比特率属性的人。

首先,如果我们使用Shell,那么将始终在索引28处找到bitrate属性。但是如果它包含该属性的任何值,则它取决于Shell对象。因为Shell的主要目的不是读取音频文件,所以我们不应该依赖它来读取任何音频文件属性。

This Thread解释了我们需要做些什么来阅读.wav的比特率。