操作系统状态错误1718449215

问题描述 投票:0回答:9

我创建了一个 iPhone 应用程序来录制我们的声音。当我尝试录制时,我在以下语句中收到错误消息。


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

错误域=NSOSStatusErrorDomain代码=1718449215“操作无法完成。(OSStatus错误1718449215。)”

如果我尝试在 .caf 文件中录制,它工作正常。如果我尝试使用 .m4a,我会收到此错误消息。

请帮我解决。

谢谢。

iphone core-audio record
9个回答
76
投票

1718449215 是

kAudioFormatUnsupportedDataFormatError
错误的四字符代码的十进制表示形式。

一般来说,您可以使用类似的方法从收到的错误中获取更多信息:

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

13
投票

如果这对其他人有帮助:我刚刚遇到了同样的错误,这是由于尝试以错误的格式创建/使用音频文件引起的。我已预设录音以创建 .caf 文件,但将其命名为 xxx.wav。


4
投票

OSStatus 错误代码很痛苦,它们通常太笼统,无法提供帮助。您是否尝试过解码四字符错误代码?有时这会有所帮助(有时你只会得到垃圾)。创建并向我们展示一个展示问题的最小代码示例。在这种情况下,我打赌四字符代码是

fmt?
。谷歌搜索数字代码,你应该更聪明。


4
投票

当我将文件类型转换为 .mp3 时,我也遇到了这个问题,而之前我使用 .caf 格式通过 AVAudioRecorder 录制声音。我再次将文件类型转换为 .caf 格式并且它有效。您可以使用以下格式

AAC、PCM、IMA4、ULAW、ILBC


1
投票

“NSDictionary”如果为空,默认是高质量,如果设置了,这个值会很低,你可以尝试取消这些参数:

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

1
投票

我最喜欢的解密 OSStatus 代码的工具是 https://osstatus.com

OSStatus错误1718449215是

kAudioConverterErr_FormatNotSupported
,这可能意味着:

  • 您尝试导出的格式不受支持(请仔细检查输出文件 URL 的文件扩展名)。

  • recordSettings
    有问题。需要注意的一件事是
    AVFormatIDKey
    的值与输出文件 URL 的文件扩展名匹配。


0
投票

如果您使用的是 c 或 cpp 代码,则可以执行此操作。

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

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

0
投票

此问题是由于保存文件格式造成的。在IOS中使用WAV格式

© www.soinside.com 2019 - 2024. All rights reserved.