AudioUnitRender создает пустые аудиобуферыIOS

Программируем под IOS
Ответить
Гость
 AudioUnitRender создает пустые аудиобуферы

Сообщение Гость »


Я пытаюсь микшировать звук из нескольких аудиоисточников с помощью Audio Units. Структура довольно проста: у меня есть два входа, аудиоблок микшера и общий выход. Проблема в том, что буферы вывода AudioUnit заполняются только нулями.
[*]Вводные данные передаются через AURenderCallbackStruct непосредственно в микшер. [*]Подтип микшера: kAudioUnitSubType_MultiChannelMixer. [*]Подтип вывода — kAudioUnitSubType_GenericOutput для извлечения микшированного звука вручную, не воспроизводя его. Выход подключается через AudioUnitConnection, чтобы избежать использования устаревшего AUGraph. AVAudioSession нельзя использовать для совместимости с ReplayKit.
Я удалил все проверки OSStatus, чтобы предоставить более короткую версию кода; однако все методы Audio Unit возвращают noErr. Способ установки:

private func setupAudioUnits() { // Настройка микшера var mixComponentDescription = AudioComponentDescription( компонентТип: kAudioUnitType_Mixer, компонентSubType: kAudioUnitSubType_MultiChannelMixer, компонентПроизводитель: kAudioUnitManufacturer_Apple, Флаги компонента: 0, компонентФлагсМаска: 0) пусть mixComponent = AudioComponentFindNext(nil, &mixerComponentDescription) AudioComponentInstanceNew(mixerComponent!, &mixerAudioUnit) охранник пусть mixAudioUnit еще { FatalError() } varstreamFormat = выходнойформат.streamDescription.pointee AudioUnitSetProperty(mixerAudioUnit, kAudioUnitProperty_StreamFormat, кAudioUnitScope_Output, 0, &формат потока, UInt32(MemoryLayout.size)) AudioUnitInitialize (микшерAudioUnit) вар busCount = UInt32 (входы) AudioUnitSetProperty(mixerAudioUnit, kAudioUnitProperty_ElementCount, кAudioUnitScope_Input, 0, &busCount, UInt32(MemoryLayout.size)) // Настройка входов микшера для ввода в 0..
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»