AudioKit崩溃:所需条件为假:!destNodeMixerConns.empty()&&!isDestNodeConnectedToIONode

时间:2019-08-08 17:04:10

标签: ios audiokit

我们的项目遇到异常:

2019-08-08 10:18:28.703708-0600 AppName[99385:5069475] *** Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: !destNodeMixerConns.empty() && !isDestNodeConnectedToIONode'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000010ee2e8db __exceptionPreprocess + 331
    1   libobjc.A.dylib                     0x000000010e21bac5 objc_exception_throw + 48
    2   CoreFoundation                      0x000000010ee2e662 +[NSException raise:format:arguments:] + 98
    3   AVFAudio                            0x0000000111b94dbc _Z19AVAE_RaiseExceptionP8NSStringz + 156
    4   AVFAudio                            0x0000000111bf3937 _Z11_AVAE_CheckPKciS0_S0_b + 295
    5   AVFAudio                            0x0000000111b8cb8f _ZN18AVAudioEngineGraph8_ConnectEP19AVAudioNodeImplBaseS1_jjP13AVAudioFormat + 1031
    6   AVFAudio                            0x0000000111bfb598 _ZN17AVAudioEngineImpl7ConnectEP11AVAudioNodeS1_mmP13AVAudioFormat + 194
    7   AVFAudio                            0x0000000111bfb5ff -[AVAudioEngine connect:to:format:] + 83
    8   AppName                             0x000000010a424c10 $s8AudioKitAAC6outputAA6AKNodeCSgvWZTf4dd_n + 2576
    9   AppName                             0x000000010a4230fd $s8AudioKitAAC6outputAA6AKNodeCSgvsZ + 93
    10  AppName                             0x000000010a2ba3a3 $s6AppName7MaestroC17setUpTrackPlayers7fileURLy10Foundation0H0V_tF + 1235

检查common gotchas video时,我看到抛出了类似的异常required condition is false: !nodeMixerConns.empty() && !hasDirectConnToIONode,这是由于允许变量超出范围而不是保留在类中引起的。

因此,当我们创建保留在一个类中的AKPlayer时,就会发生这种情况,然后我们使用也保留在该类中的该播放器创建一个AKTimePitch,最后将其分配给{{ 1}}触发异常。之后,我们将保存播放器和时间间隔的类存储在一个数组中,因此我希望在创建它之后将其上移,希望是问题所在,但我看到了相同的异常。

有趣的是,此代码最初在我们加载第一首歌曲时工作正常,但是在我们按下“ Next”(下一步)按钮加载下一首歌曲时崩溃。

AudioKit.output

有什么想法吗?如果您需要更多信息,请告诉我。可能需要注意的是,我们是从AudioKit 4.5.5更新的,我们没有遇到此崩溃。

1 个答案:

答案 0 :(得分:2)

我已经打开了项目,似乎您对信号链的设置/拆除感到有些放松。您正在使用局部变量设置AudioKit的输出,从不拆除该信号链,然后重新设置AudioKit的输出并告诉AudioKit在不调用AudioKit.stop()的情况下启动。