Нет звука в записи видео (с использованием GPUImage) после инициализации 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. Любая помощь будет потрясающей.

1 ответ

Решение

Естественно, когда я, наконец, пристегнулся и отправил вопрос, я нашел свою проблему.

Установка предпочитаемой BufferDuration в 0,005 немного чрезмерно. Удаление этой строки решило мою проблему.

Вы можете узнать больше о предпочитаемой длительности буфера здесь.

Другие вопросы по тегам