AAC将流写入文件错误

时间:2014-05-14 08:30:59

标签: ios core-audio audiostreamer

我尝试将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。

但我无法理解为什么会收到此错误代码。

0 个答案:

没有答案