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

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

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找到比特率? 如果没有那么有没有更好的方法来找出比特率位于哪个位置?

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

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

本篇文章解释了我们需要做些什么来阅读.wav的比特率。