AVAudioRecorder и iOS 5.1 - PullRequest
       20

AVAudioRecorder и iOS 5.1

3 голосов
/ 12 марта 2012

У меня есть приложение, которое записывает звук с помощью AVAudioRecorder. Он отлично работает на устройствах с версиями iOS до iOS 5.1, но с последней версией он не увеличивает размер файла аудиозаписи, который остается на постоянном уровне 4k.

// init audio recorder here so recording could be started immediately            
NSDictionary *recordSettings = [NSDictionary 
                                dictionaryWithObjectsAndKeys:
                                [NSNumber numberWithInt:kAudioFormatAppleIMA4],
                                AVFormatIDKey,
                                [NSNumber numberWithInt: 1],
                                AVNumberOfChannelsKey,
                                [NSNumber numberWithFloat:44100.0],
                                AVSampleRateKey,
                                nil];           

// Get temp path name
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachePath = [paths objectAtIndex:0];
BOOL isDir = NO;
NSError *error = nil;
if (![[NSFileManager defaultManager] fileExistsAtPath:cachePath isDirectory:&isDir] && isDir == NO) {
    [[NSFileManager defaultManager] createDirectoryAtPath:cachePath withIntermediateDirectories:NO attributes:nil error:&error];
}
self.audioFilePath = [cachePath stringByAppendingPathComponent:@"audio.ima4"];
NSURL *audioFileURL = [NSURL fileURLWithPath:self.audioFilePath];
AVAudioRecorder *anAudioRecorder = [[AVAudioRecorder alloc] initWithURL:audioFileURL 
                                                               settings:recordSettings
                                                                  error:&error];
self.audioRecorder = anAudioRecorder;
[anAudioRecorder release];
 [self.audioRecorder prepareToRecord];

(подождите, пользователь нажмет запись) [self.audioRecorder record]; (подождите, 5-10 секунд, пользователь нажимает стоп) [self.audioRecorder stop];

Я поместил отладочные операторы, которые проверяют размер временного файла, и он составляет 4096 байт во время записи и только 4130 байт после вызова stop.

Я не вижу способа обойти это. Это ошибка в iOS 5.1?

...