1

我在我的项目中使用了两个第三方工具。一个是“惊人的音频引擎”。我将它用于音频过滤器。另一个是 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 有关,因为它是一个共享实例。任何帮助都会很棒。

4

1 回答 1

0

自然,当我最终扣上并发布问题时,我发现了我的问题。

将 preferredBufferDuration 设置为 0.005 有点过分。删除这条线解决了我的问题。

您可以在此处了解有关 preferredBufferDuration的更多信息。

于 2015-07-17T23:06:06.877 回答