Зафиксировано ли свойство битрейта в индексе 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.