NSString *docsDir;
NSArray *dirPaths;
//
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
NSString *databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent:@"test.aif"]];
NSURL *fileURL = [NSURL URLWithString:databasePath];
//
AudioStreamBasicDescription asbd;
memset(&asbd, 0, sizeof(asbd));
asbd.mSampleRate = 44100;
asbd.mFormatID = kAudioFormatLinearPCM;
asbd.mFormatFlags = kAudioFormatFlagIsBigEndian | kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
asbd.mChannelsPerFrame = 1;
asbd.mFramesPerPacket = 1;
asbd.mBitsPerChannel = 16;
asbd.mBytesPerFrame = 2;
asbd.mBytesPerPacket = 2;
//
AudioFileID audioFile;
OSStatus audioErr = noErr;
audioErr = AudioFileCreateWithURL((CFURLRef)fileURL,
kAudioFileAIFFType,
&asbd,
kAudioFileFlags_EraseFile,
&audioFile);
NSLog(@"%ld",audioErr);
我用iphone模拟器运行代码,日志打印是-50,我查了苹果的文档,但是找不到错误代码-50,我不知道“-50”是什么意思,那是什么问题?我在哪里可以得到错误代码?谢谢。
更新:我将代码“ NSURL *fileURL = [NSURL URLWithString:databasePath];
”更改为“ CFURLRef fileURL = ( CFURLRef)[NSURL fileURLWithPath:databasePath];
”,是的,它不返回错误代码-50,并返回成功代码0,但几秒钟后,它会返回错误代码1886547263,我发现它的意思是“失败”打开或创建用于写作的音频文件”。