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

2024-03-22

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

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


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

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

这个话题 https://stackoverflow.com/questions/21567920/how-to-read-bit-rate-of-wav-file-in-c-sharp解释了我们需要做什么来读取 .wav 的比特率。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“比特率”属性是否固定在索引 28 中? 的相关文章

随机推荐