AudioKitを使用してこのクラッシュを取得しています*** Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'player started when in a disconnected state'
これは、ノードを作成して追加するときに発生しますが、別の順序で追加すると発生しません。ここで、所望の鎖である:AudioKitチェーンのノードの作成順序に関連する「切断状態」のクラッシュ
[プレーヤー] - > [booster1] - > [MIXER1] - > [booster2] - > [MIXER2] - > [ピークリミッタ] - > [出力]
Iこのために、それを構築する、それがクラッシュ:
let mixer2 = AKMixer()
let peakLimiter = AKPeakLimiter(mixer2)
AudioKit.output = peakLimiter
AudioKit.start()
let mixer1 = AKMixer()
let booster2 = AKBooster(mixer1)
mixer2.connect(input: booster2)
let booster1 = AKBooster(player)
mixer1.connect(input: booster1)
player.play()
しかし、私はこの順序でそれを構築する場合、それが動作します:
let booster1 = AKBooster(player)
let mixer1 = AKMixer()
mixer1.connect(input: booster1)
let booster2 = AKBooster(mixer1)
let mixer2 = AKMixer()
mixer2.connect(input: booster2)
let peakLimiter = AKPeakLimiter(mixer2)
AudioKit.output = peakLimiter
AudioKit.start()
player.play()
任意のアイデアなぜですか?アプリの動的な理由から、最初の例(クラッシュ)は必要な作成順序です。
また、最初の作成順序の例を使用して2番目のブースターを省略すると、それは機能します。 [プレーヤー] - > [booster1] - > [MIXER1] - > [MIXER2] - > [ピークリミッタ] - > [出力]
let mixer2 = AKMixer()
let peakLimiter = AKPeakLimiter(mixer2)
AudioKit.output = peakLimiter
AudioKit.start()
let mixer1 = AKMixer()
mixer2.connect(input: mixer1)
let booster1 = AKBooster(player)
mixer1.connect(input: booster1)
player.play()
これはうまくいきました。ただし、実行時にユーザーが追加してmixer2に接続するチェーンの前半部分([player] - > [booster1] - > [mixer1] - > [booster2])が多数存在するため、ユーザーが追加を開始する前に、AudioKitの出力を設定し、アプリケーションの起動時にAudioKit()を起動します。 –
あなたが役に立ったら嬉しいです。気をつけて投票し、答えを受け入れてください:) –