我正在尝试读取音频文件的“比特率”属性。我知道如何获得价值但是我这样做的方式我觉得不是最有效的。
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找到比特率?如果没有那么有没有更好的方法来找出比特率位于哪个位置?
答案 0 :(得分:1)
经过一些研究和其他成员的帮助后,我得到了我想要的东西。这个答案适用于那些可能在这里寻找音频文件的比特率属性的人。
首先,如果我们使用Shell,那么将始终在索引28处找到bitrate属性。但是如果它包含该属性的任何值,则它取决于Shell对象。因为Shell的主要目的不是读取音频文件,所以我们不应该依赖它来读取任何音频文件属性。
This Thread解释了我们需要做些什么来阅读.wav的比特率。