Frage

ich brauche Bitrate Informationen von Audio-Dateien zu erhalten, aus irgendeinem Grunde AudioFileGetProperty Funktion mit kAudioFilePropertyBitRate konstant 0 für mich immer wieder. Das gleiche mit kAudioFilePropertyInfoDictionary, tut das resultierende Wörterbuch Bitrate Informationen enthalten. Ich würde versuchen, diese manuell die bekommen von Rohdaten bei mp3, aber ich brauche, um verschiedene Dateiformate wie m4a und andere zu unterstützen. Gibt es eine andere Möglichkeit, dies zu tun?

War es hilfreich?

Lösung

Wenn Sie mit einer Datei zu tun haben, können Sie immer versuchen, den Spotlight-Metadaten-API. Zum Beispiel, vorausgesetzt, Sie den Pfad zu Ihrer Audiodatei als ein NSString oder CFStringRef genannt ‚Pfad‘ haben:

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

Es ist nicht ideal, aber zumindest könnte man mit etwas mehr Hintergrundinformationen zu deuten darauf hin, warum die andere API funktioniert nicht.

Das einzige, was ich denken kann: kAudioFilePropertyBitRate ist nur in OS X 10.5 definiert. Wenn Sie auf 10.4 oder früher laufen lassen, und trotzdem wird das Code ausführen, aber der Audiofile Rahmen wird nicht alles über die Bitrate Eigenschaft kennen, und würde daher wahrscheinlich Null zurück.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top