3

私の理解では、Audio Queue Services は、Audio Units を使用する Audio Units よりも高レベルの API です。OpenAL は Audio Units も使用します。したがって、Audio Units は iOS の最下位レベルのオーディオ API です。

サウンドを録音し、オーディオ ストリームにカスタム フィルターを適用して再生する必要があります。Audio Queue Services は録音に適しているようで、再生にも使用できます。しかし、AURemoteIO オーディオ ユニットのように、独自のアルゴリズムをオーディオ ストリームに適用できるかどうかはまだわかりません。

4

2 に答える 2

5

私の個人的な (そして時には苦痛を伴う) 経験から、ストリーミング タイプのアプリケーションには AudioQueue を使用することをお勧めします。それ以外の場合は、AudioUnit を使用します。後者はレベルが低いかもしれませんが、複雑さには大きな違いは見られませんでした。

正直に言うと、AudioUnit のほうがはるかに簡単に操作できるように思えました。

理論的には、AudioUnit を使用すると、他のプラグインを使用してエフェクトを適用できるはずです。ただし、iOS 5 までは AURemoteIO が利用可能な唯一の AudioUnit でした。どうやら iOS 5 にはさらに多くの機能があるようです。私はまだ確認する機会がありませんでした。

バッファに対してアルゴリズムを実行して手動で実行している場合は、かなり多くのオープン ソース DSP コードを見つけることができるはずです。商用アプリもあります。非常に優れたライブラリの 1 つに、ピッチ シフトとタイム ストレッチ用の Dirac DSP ライブラリがあります。

この他の質問への回答で AURemoteIO を使用するための優れたチュートリアルを次に示します。

AudioQueue の停止と迅速な再生

于 2012-01-20T16:41:54.797 に答える
1

非圧縮オーディオを録音して保存すると、オーディオ API を使用せずに、キャプチャしたオーディオ バッファまたはファイルに独自のカスタム オーディオ エフェクトを直接適用できます。次に、任意の iOS オーディオ API を使用して結果を再生します。

于 2012-01-20T16:34:49.607 に答える