3

オーディオ ファイルの「ビット レート」プロパティを読み込もうとしています。値を取得する方法は知っていますが、私が行っている方法は最も効率的だとは思いません。

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 で見つかるかどうか疑問に思い始めました。そうでない場合、ビットレートがどのインデックスにあるかを調べるより良い方法はありますか?

4

1 に答える 1

1

少しの調査と他のメンバーの助けを借りて、探していたものを手に入れました。この回答は、オーディオ ファイルのビットレート プロパティを検索してここにたどり着く可能性がある人向けです。

まず、Shell を使用する場合、ビットレート プロパティは常にインデックス 28 で検出されます。ただし、そのプロパティの値が含まれている場合は、Shell オブジェクトまでです。シェルの主な目的はオーディオ ファイルを読み取ることではないため、オーディオ ファイルのプロパティを読み取るためにシェルに依存するべきではありません。

このスレッドでは、.wav のビットレートを読み取るために必要なことについて説明しています。

于 2014-02-05T11:40:57.897 に答える