Core Audio 中 , Audio File Service 三步走,
-
本地文件,转音频处理 ID
通过 AudioFileOpenURL
-
拿音频处理 ID , 获取信息的内存大小
AudioFileGetPropertyInfo
-
那前面两个,获取信息
通过频处理 ID 和信息的内存大小 ,
获取信息
AudioFileGetProperty
int main (int argc, const char * argv[]) {
// 先看参数的个数
if (argc < 2) {
printf ("Usage: CAMetadata /full/path/to/audiofile SS\n");
return -1;
} // 1
// 再去取参数
NSString *audioFilePath = [[NSString stringWithUTF8String:argv[1]]
stringByExpandingTildeInPath]; // 2
NSURL *audioURL = [NSURL fileURLWithPath:audioFilePath]; // 3
NSLog (@"audioURL: %@", audioURL);
AudioFileID audioFile; // 4
OSStatus theErr = noErr; // 5
theErr = AudioFileOpenURL((__bridge CFURLRef)audioURL, kAudioFileReadPermission, 0, &audioFile); // 6
assert (theErr == noErr); // 7
UInt32 dictionarySize = 0; // 8
theErr = AudioFileGetPropertyInfo (audioFile, kAudioFilePropertyInfoDictionary,
&dictionarySize, 0); // 9
assert (theErr == noErr); // 10
CFDictionaryRef dictionary; // 11
theErr = AudioFileGetProperty (audioFile, kAudioFilePropertyInfoDictionary,
&dictionarySize, &dictionary); // 12
assert (theErr == noErr); // 13
NSLog (@"\n\ndictionary: %@", dictionary); // 14
CFRelease (dictionary); // 15
theErr = AudioFileClose (audioFile); // 16
assert (theErr == noErr); // 17
return 0;
}
上面的 argv, 里面有两个参数。
命令行,添加参数
这样处理下