我在项目中使用了两个第三方工具。一个是"The Amazing Audio Engine"。我用它来做音频滤镜。另一个是GPUImage,或者更具体地说是GPUImageMovieWriter。当我录制视频时,我将录音与视频合并。这很好用。但是,有时我不使用The Amazing Audio Engine,只使用GPUImageMovieWriter录制普通视频。问题是,即使在初始化The Amazing Audio Engine之后,视频在开始时只有一小部分音频,然后音频消失了。
+ (STAudioManager *)sharedManager
{
static STAudioManager *manager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
if (!manager)
{
manager = [[STAudioManager alloc] init];
manager.audioController = [[AEAudioController alloc] initWithAudioDescription:[AEAudioController nonInterleaved16BitStereoAudioDescription] inputEnabled:YES];
manager.audioController.preferredBufferDuration = 0.005;
manager.audioController.voiceProcessingEnabled = YES;
manager.audioController.useMeasurementMode = YES;
}
});
return manager;
}
初始化TAAE时会发生一些事情。我怀疑它与AVAudioSession有关,因为它是一个sharedInstance。任何帮助都会很棒。
答案 0 :(得分:0)
当我终于扣上并发布一个问题时,我发现了自己的问题。
将preferredBufferDuration设置为0.005有点过分。删除此行解决了我的问题。
您可以详细了解preferredBufferDuration here。