4

オーディオ ファイルからビットレート情報を取得する必要があります。何らかの理由で、kAudioFilePropertyBitRate 定数を指定した AudioFileGetProperty 関数は常に 0 を返します。kAudioFilePropertyInfoDictionary と同様に、結果の辞書にはビットレート情報が含まれません。mp3 の場合は生データから手動で取得しようとしますが、m4a などのさまざまなファイル形式をサポートする必要があります。これを行う他の方法はありますか?

4

1 に答える 1

2

ファイルを扱っている場合は、いつでも Spotlight メタデータ API を試すことができます。たとえば、'path' と呼ばれる NSString または CFStringRef としてオーディオ ファイルへのパスがあると仮定します。

MDItemRef item = MDItemCreate( kCFAllocatorDefault, path );
CFNumberRef audioBitrate = MDItemCopyAttribute( item, kMDItemAudioBitrate );
CFNumberRef totalBitrate = MDItemCopyAttribute( item, kMDItemTotalBitrate );
CFRelease( item );

理想的ではありませんが、少なくとも、他の API が機能しない理由を示唆する背景情報を提供する可能性があります。

私が考えることができる唯一の他のこと: kAudioFilePropertyBitRate は OS X 10.5 でのみ定義されています。10.4 以前で実行している場合、コードは引き続き実行されますが、AudioFile フレームワークはビットレート プロパティをまったく認識しないため、ゼロが返される可能性があります。

于 2009-05-13T21:19:58.183 に答える