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です。Appleのドキュメントを調べましたが、エラーコード-50が見つかりません。「-50」の意味がわからないので、何が問題なのですか?エラー コードはどこで入手できますか?ありがとうございます。
更新: コード " NSURL *fileURL = [NSURL URLWithString:databasePath];
" を " "に変更しましたCFURLRef fileURL = ( CFURLRef)[NSURL fileURLWithPath:databasePath];
。はい、エラー コード -50 は返されず、成功コード 0 が返されますが、数秒後にエラー コード 1886547263 が返されます。書き込み用のオーディオ ファイルを開くか作成します。」