2015-03-30 7 views
1

Я создаю приложение, которое позволяет пользователю разговаривать в микрофон во время воспроизведения музыки (подобно караоке). Мне удалось получить эту работу с помощью AudioEngine с несколькими входами, идущими в микшер. Однако, когда микрофон включен, качество звука музыки также теряется. Похоже, музыка проплачивается через микрофон. Я полагаю, что это связанно с микрофоном и музыка с различным AVAudioFormats, но я не могу найти формат, который работает для микрофона, кроме:AVAudioEngine Input Mic Tap влияет на Music PlayerNode - SWIFT

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) 

Я бежал из идей относительно того, что я делаю неправильно. Любая помощь очень ценится!

ответ

0

Вам нужно больше узнать о своем коде, в основном, о том, как вы настроили ввод и вывод в AVAudioSession.

Не знаю, из вашего описания, какие у вас настройки ввода или вывода. Для iPhone у вас есть 3 входных микрофона (спереди, сзади & внизу) и 2 выхода (приемник (ухо) & динамик (внизу)). Если у вас установлен вход для нижнего микрофона, то, скорее всего, выход будет установлен на приемник, который предназначен для удержания.