Сбой микрофона AVAudioEngine при запуске - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь настроить AudioQueue для потоковой передачи звука с микрофона на iPhone.

Я создаю свой звуковой движок:

var audioEngine = AVAudioEngine()

И мою звуковую очередь:

    // Serial dispatch queue used to analyze incoming audio buffers.
    let analysisQueue = DispatchQueue(label: "com.apple.AnalysisQueue")


    // Install an audio tap on the audio engine's input node.
    audioEngine.inputNode.installTap(onBus: 0,
                                     bufferSize: 8192, // 8k buffer
                                     format: inputFormat) { buffer, time in

        // Analyze the current audio buffer.
        analysisQueue.async {
        }
    }

Всякий раз, когда я запускаю код на симуляторе или устройстве, я получаюследующий сбой:

*** Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: inputNode != nullptr || outputNode != nullptr'

Я следовал некоторому примеру кода Apple, делая это;несколько смущен. Любая помощь приветствуется!

РЕДАКТИРОВАТЬ : этот вопрос несколько дней назад, похоже, указывает на похожую проблему: Сбой AVAudioEngine.connect на оборудовании, а не на симуляторе

1 Ответ

0 голосов
/ 22 октября 2019

Я как-то пропустил эту тему во время поиска в Google;но благодаря @SOreadytohelp у меня все получилось - просто добавьте

audioEngine.mainMixerNode

прямо над

do {
    // Start the stream of audio data.
    try audioEngine.start()
} catch {
    print("Unable to start AVAudioEngine: \(error.localizedDescription)")
}
...