0
    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 が返されます。書き込み用のオーディオ ファイルを開くか作成します。」

4

2 に答える 2