ココアのオーディオファイルのビットレートを取得する方法
-
21-08-2019 - |
質問
私はkAudioFilePropertyBitRate定数は常に私のために0を返すといくつかの理由のAudioFileGetProperty機能のために、オーディオファイルからビットレート情報を取得する必要があります。 kAudioFilePropertyInfoDictionaryと同じことが、結果として辞書には、ビットレートの情報が含まれているdoesntの。私はmp3の場合には、生データからこれを取得しようとしてmanualyだろうが、私は、このようなM4Aなどなど、さまざまなファイル形式をサポートする必要があります。これを行うための他の方法はありますか?
解決
ファイルを扱っている場合は、常にスポットライトのメタデータAPIを使用して試みることができます。たとえば、あなたが「パス」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上で動作しているか、それ以前の場合は、あなたのコードはまだ実行されますが、オーディオファイルのフレームワークは、すべてのビットレートの特性について知ることができませんので、可能性はゼロを返します。
所属していません StackOverflow