Зафиксировано ли свойство битрейта в индексе 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? Если нет, то есть ли лучший способ узнать, по какому индексу находится битрейт?

1 ответ

Решение

После небольшого исследования и помощи от других участников я получил то, что искал. Этот ответ для тех, кто может приземлиться здесь в поисках битрейта аудио файлов.

Прежде всего, если мы используем Shell, свойство битрейта всегда будет найдено по индексу 28. Однако это касается объекта Shell, если он содержит какое-либо значение для этого свойства. поскольку основная цель Shell - не читать аудиофайлы, поэтому мы не должны полагаться на нее при чтении каких-либо свойств аудиофайлов.

В этой теме объясняется, что нам нужно сделать, чтобы прочитать битрейт.wav.

Другие вопросы по тегам