3

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

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);

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

4

1 回答 1

1

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

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

这个线程解释了我们需要做什么来读取 .wav 的比特率。

于 2014-02-05T11:40:57.897 回答