获取kb的音频文件大小

时间:2011-11-03 10:36:57

标签: iphone objective-c audio avaudioplayer nsdata

在我的应用程序中,我有一个以caf和aac格式存储的音频文件。我需要从音频网址获取kb中音频文件的大小。有没有办法达到这个要求?

5 个答案:

答案 0 :(得分:5)

您可以使用NSFileManager来请求属性字典,然后从属性字典中获取大小:

NSFileManager * fileManager = [NSFileManager new];
NSError * error = 0;
NSDictionary * attr = [fileManager attributesOfItemAtPath:path error:&error];
// error checking
unsigned long long size = [attr fileSize];
[fileManager release];

这适用于iOS 2和OSX.5

答案 1 :(得分:1)

答案 2 :(得分:1)

您可以使用以下命令行

$ curl --head $ URL_OF_AUDIO_FILE | grep Content-Length | awk'{print($ 2/1024);}'

[[PDF的例子]]

curl --head http://cran.r-project.org/doc/manuals/R-intro.pdf | grep Content-Length | awk'{print($ 2/1024);}'

答案 3 :(得分:1)

您可以使用CF / NSURL的属性访问器,这些访问器可在iOS 5及更高版本和OSX.6及更高版本上使用:

id value = 0;
// Key for the file’s size in bytes, returned as an NSNumber object:
NSString * key = NSURLFileSizeKey;
NSError * error = 0;
BOOL result = [audioFileURL getResourceValue:&value forKey:key error:&error];
... error checking here ...
NSNumber * number = value;

文件大小信息有多个键,另一个可能更适合您的需要。

答案 4 :(得分:0)

我通过将其转换为NSData并获取其长度属性来解决它。

    NSError *err = nil;
    NSData *audioData = [NSData dataWithContentsOfFile:file options:0 error:&err];
    NSString *audioLength = [NSString stringWithFormat:@"%dkB",[audioData length]/1000];
    NSLog(@"[audioData bytes]==%@",audioLength);