Как получить правильный AVAudioFormat для подключения узлов

у меня вылетает с этим кодом

//  ViewController.swift
import UIKit
import AVFoundation
class ViewController: UIViewController {
    var engine:AVAudioEngine!
    var EQNode:AVAudioUnitEQ!

    override func viewDidLoad() {
        engine.reset()
        let Format = engine.inputNode.outputFormat(forBus: 0)

        print("channelcount:",engine.inputNode.inputFormat(forBus: 0).channelCount)

//----->Start CRASH App stoped here
        engine.connect(engine.inputNode, to: EQNode, format: Format)
        engine.connect(EQNode, to: engine.mainMixerNode, format: Format)

        var error: NSError?
        engine.prepare()
        print("done prepare")
        do {
            try engine.start()
        } catch {
            print(error)
        }
        print("done start")
    }
}

И если я изменю Format на nil, мое приложение не будет работать, но не сработает. Все это отлично работает на симуляторе Xcode без ошибок. Но на реальном устройстве iOS (я использую iPad 2019) проверьте, что он вылетает.

Подробно о моем приложении: Живой микрофон настраивается в эквалайзере и отображается эквалайзер звука в реальном времени.

ОШИБКА:

SelfhearEQ[3532:760180] [aurioc] AURemoteIO.cpp:1086:Initialize: failed: -10851 
    (enable 1, outf< 2 ch,      0 Hz, Float32, non-inter> inf< 1 ch,  44100 Hz, Float32>)

channelcount: 0
2019-10-22 18:01:29.891748+0700 SelfhearEQ[3532:760180] [aurioc] AURemoteIO.cpp:1086:Initialize: failed: -10851 
(enable 1, outf< 2 ch,      0 Hz, Float32, non-inter> inf< 1 ch,  44100 Hz, Float32>)
2019-10-22 18:01:29.892326+0700 SelfhearEQ[3532:760180] [avae]            
    AVAEInternal.h:76    required condition is false: [AVAudioEngineGraph.mm:2127:_Connect: (IsFormatSampleRateAndChannelCountValid(format))]
2019-10-22 18:01:29.896270+0700 SelfhearEQ[3532:760180] *** Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: IsFormatSampleRateAndChannelCountValid(format)'

person Maitree Hirunteeyakun    schedule 22.10.2019    source источник


Ответы (1)


Я нашел ответ на это, он ничего не говорит о форматировании, вызывающем эту ошибку. Проверьте это на моем другом вопросе, который он исправил. avaudioengine-connect-crash-on-hardware-not-simulator

person Maitree Hirunteeyakun    schedule 26.10.2019