Я создаю приложение, которое позволяет пользователю говорить в микрофон во время воспроизведения музыки (аналогично караоке). Мне удалось заставить это работать с помощью AudioEngine с несколькими входами, входящими в микшер. Однако, когда микрофон включен, качество звука музыки также теряется. Это почти звучит так, как будто музыку платят через микрофон. Я полагаю, это связано с тем, что микрофон и музыка имеют разные форматы AVAudioFormats, но я не могу найти формат, который работает для микрофона, кроме:
var format = AVAudioFormat(commonFormat: AVAudioCommonFormat.PCMFormatFloat32, sampleRate: 8000.0, channels:AVAudioChannelCount(2), interleaved: false)
где мой формат вывода музыки просто
mixer.outputFormatForBus(0)
который звучит ясно, когда микрофон отключен.
Стоит отметить, что я также использую категорию AvAudioSessionCategory:
session.setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions:AVAudioSessionCategoryOptions.AllowBluetooth, error: nil)
У меня закончились идеи относительно того, что я делаю неправильно. Любая помощь приветствуется!