1

我试图将 aac 音频流录制到文件中。

我创建了一个 AudioFileID

AudioStreamBasicDescription asbd2;
    memset(&asbd2, 0, sizeof(asbd2));
    asbd2.mSampleRate = [[AVAudioSession sharedInstance] sampleRate];
    asbd2.mChannelsPerFrame = (UInt32)[[AVAudioSession sharedInstance] inputNumberOfChannels];
AudioFileID audioFile;
    NSArray * dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString * docsDir = [dirPaths objectAtIndex:0];
    NSString *pathForTheFile = [docsDir stringByAppendingPathComponent:@"test.caf"];
    CFURLRef fileURL = (__bridge CFURLRef)[NSURL fileURLWithPath:pathForTheFile];
OSStatus status = AudioFileCreateWithURL(fileURL,
                                             kAudioFileAAC_ADTSType,
                                             &asbd2,
                                             kAudioFileFlags_EraseFile,
                                             &audioFile);
self.fileIDGlob = audioFile;

它创建没有错误。

然后我打开一个流并解析它(没有错误)。我使用https://github.com/mattgallagher/AudioStreamer读取流

err = AudioFileStreamOpen(self, ASPropertyListenerProc, ASPacketsProc, 
                                    fileTypeHint, &audioFileStream);
AudioFileStreamParseBytes(audioFileStream, length, bytes, kAudioFileStreamParseFlag_Discontinuity);

当我尝试将数据写入文件时

OSStatus status = AudioFileWriteBytes(self.fileIDGlob, false, 0, &length, &bytes);

在状态下,我收到 1869627199,据我了解,它是 kAudioFileOperationNotSupportedError。

但我不明白为什么我会收到这个错误代码。

4

0 回答 0