我尝试将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。
但我无法理解为什么会收到此错误代码。