OSStatus error 1718449215

2019-01-17 19:50发布

问题:

I have created an iPhone application to record our voice. When I try to record, I am getting error message in following statement.


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

Error Domain=NSOSStatusErrorDomain Code=1718449215 "Operation could not be completed. (OSStatus error 1718449215.)"

If I tried to record in .caf file, it is working fine. If I tried with .m4a, I am getting this error message.

Please help me to resolve it.

Thanks.

回答1:

1718449215 is the decimal representation of the four character code for the kAudioFormatUnsupportedDataFormatError error.

In general you can use something like this to get more information from the errors you receive:

NSError *error = [NSError errorWithDomain:NSOSStatusErrorDomain
                          code:my_error_code
                          userInfo:nil];
NSLog(@"Error: %@", [error description]);


回答2:

In case this helps others: I just had the same error, and it was caused by trying to create/use audio files in the wrong format. I had preset the recording to create a .caf file, but instead, called the file xxx.wav.



回答3:

OSStatus error codes are pain, they are often too general to help. Did you try to decode the four-char error code? Sometimes that helps (other times you just get garbage). Create and show us a minimal code example that exhibits the problem. In this case I bet that the four-char code is fmt?. Google for the numeric code and you should be wiser.



回答4:

I also faced this issue when I converted file type to .mp3 while previously I was using .caf format for recording sound with AVAudioRecorder. I again converted file type to.caf format & it works. You may use following formats

AAC, PCM, IMA4, ULAW, ILBC



回答5:

"NSDictionary" if it is empty, the default is high quality, if you set, this value will be very low, you can try to cancel these parameters:

setting[AVFormatIDKey] = @(kAudioFormatAppleIMA4);
setting[AVSampleRateKey] = @(600.0);
setting[AVNumberOfChannelsKey] = @(1);
setting[AVLinearPCMBitDepthKey] = @(8);


回答6:

If you're in c or cpp code you can do this.

char code[4];
*((SInt32*)&code[0]) = error;


回答7:

UInt32 code = CFSwapInt32HostToBig(error);
NSLog(@"%4.4s"(char *)&code);