問題タブ [avaudioplayernode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
697 参照

swift - 再生終了後に AVAudioPlayerNode で stop() を呼び出すとクラッシュする

再生が終了したらコールバックを送信する AVAudioPlayerNode オブジェクトがあります。そのコールバックはアプリ内の他の多くの関数をトリガーし、そのうちの 1 つが礼儀の stop() メッセージを送信します。何らかの理由で、AVAudioPlayerNode が終了した瞬間に stop() を呼び出すと、クラッシュが発生します。ここのコードでは、(アプリケーション全体を含めるのではなく) 効果を示すために AVAudioPlayerNode がただちに stop を呼び出すように省略しています。崩れているのがよくわかります。理由がわかりません。a) ノードがまだ再生中で、stop() がノードを停止するか、b) 再生が終了し、stop を無視できるかのいずれかです。

私の推測では、これはファイル バッファの最後にあるエッジ ケースであり、バッファが残っていないあいまいな状態にありますが、技術的にはまだ再生中です。おそらく、stop() を呼び出して残りのバッファをフラッシュしようとして、それらが空になるのでしょうか?

0 投票する
1 に答える
484 参照

ios - Swift iOS でのリアルタイム ピッチ シフティング

電話のマイク入力のピッチを変更し、ユーザーが最小限の遅延 (最大で数ミリ秒) で話すときに変更された音声をスピーカーから再生する iOS アプリを (迅速に) 実装したいと考えています。これまでのところ、次のコードがあります。

しかし、アプリを実行するとすぐに、次のエラーが発生します。

これを修正するための助けをいただければ幸いです。

編集:

installTap問題は、コールバック関数が呼び出されないため、チェーンが壊れていることだと思います。

AVFoundation のタイム エフェクトを使用してリアルタイムのマイク入力を処理するために私が取ったアプローチが正しい場合、このエラーはどのように修正できますか?

または、私のアプローチが間違った方向にある場合、デバイスのマイクからの入力のピッチを最小の遅延 (最大で数ミリ秒の遅延) でリアルタイムに変更するにはどうすればよいですか?