Операция не может быть завершена. AVAudioRecorder iphone SDK - PullRequest
2 голосов
/ 15 марта 2010

Я пытаюсь записать, используя микрофон iphones: это мой код:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

// the path to write file
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"testing.mp3"];




NSURL *url = [NSURL fileURLWithPath:appFile isDirectory:NO];

NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:
                          [NSNumber numberWithFloat: 44100.0],                 AVSampleRateKey,
                          [NSNumber numberWithInt: kAudioFormatMPEGLayer3], AVFormatIDKey,
                          [NSNumber numberWithInt: 1],                         AVNumberOfChannelsKey,
                          [NSNumber numberWithInt: AVAudioQualityLow],         AVEncoderAudioQualityKey,
                          nil];

NSError *error;

recorder = [[AVAudioRecorder alloc] initWithURL:url settings:settings error:&error];

if ([recorder prepareToRecord] == YES){
    [recorder record];
}else {
    int errorCode = CFSwapInt32HostToBig ([error code]); 
    NSLog(@"Error: %@ [%4.4s])" , [error localizedDescription], (char*)&errorCode); 

}

NSLog(@"BOOL = %d", (int)recorder.recording);

Это ошибка, которую я получаю:

Operation could not be completed. (OSStatus error 1718449215.)

И я не могу понять, почему это не работает, так как много кода я получил с сайта.

Jonathan

1 Ответ

5 голосов
/ 16 марта 2010

Ваша проблема kAudioFormatMPEGLayer3

К сожалению, вы не можете кодировать звук на iPhone в формате mp3. В настоящее время лучшим форматом для сжатого аудио является kAudioFormatAppleIMA4. (да, есть также kAudioFormatMPEG4AAC - даже лучше, но он работает только на симуляторе, но не на устройстве). Также обратите внимание, что могут быть проблемы с декодированием записанного файла kAudioFormatAppleIMA4 в других системах, например Windows, поэтому простой формат lpcm может быть более удобным для небольших файлов.

...