我试图将 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。
但我不明白为什么我会收到这个错误代码。