Получение размера аудиофайла в кб - PullRequest
3 голосов
/ 03 ноября 2011

В моем приложении есть аудиофайлы, сохраненные в формате caf и aac. Мне нужно получить размер аудиофайла в килобайтах, из аудио-ссылки. Есть ли способ выполнить это требование?

Ответы [ 5 ]

5 голосов
/ 05 ноября 2011

Вы можете использовать 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 голос
/ 03 ноября 2011

вы можете использовать следующую командную строку

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

[[Пример для PDF]]

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

1 голос
/ 03 ноября 2011

Вы можете использовать средства доступа к свойствам 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;

Существует несколько ключей для информации о размере файла, другой может лучше подойти для ваших нужд.

1 голос
0 голосов
/ 06 ноября 2011

Я решил это, преобразовав его в NSData и получив его свойство length.

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