iOS版:Core Audioの対OpenALの対オーディオユニット
-
26-09-2019 - |
質問
誰かが私に説明してもらえますかOpenALのフィットiPhone上の音のスキーマとで?
の音を処理するためのさまざまなレベルでのAPIがあるように思われます。より高いレベルのものは簡単に十分に理解することがあります。
しかし、私の理解では、底部に向かって暗い取得します。 Core Audioの、オーディオユニット、ありOpenALの。
これらの間の接続は何ですか? OpenALのは?
(その下位レベルのオブジェクトのAudio Unitsの一つとして含まれている)のCore Audioを載る基層は、ありますのOpenALのXcodeで文書化されていないようだ、まだ私はその機能を使用するコードを実行することができます。
解決
これは私が考え出したものです。
基層は、Core Audioのです。具体的には、オーディオユニットます。
だから、オーディオユニットは、ベース層を形成し、いくつかの低レベルのフレームワークは、この上に構築されています。全体caboodleは、Core Audioのと呼ばれます。
OpenALのは、マルチプラットフォームAPIです - クリエイターは、OpenGLの移植性を反映しようとしています。いくつかの企業がのCreative LabsやAppleを含む、OpenALのを後援しています!
だから、Appleは基本的にCore Audioの上に薄いラッパーとして、このAPIを提供してきました。私は、これは開発者が容易にコードの上に引っ張るようにすることです推測しています。注意して、それはあなたがOpenALのは、Core Audioのを行うことができます何かをしたいのであれば、不完全な実装であり、それはそれを行います。しかし、それ以外の場合はしません。
直感に反するの種類は - OpenALのは低いレベルであるかのように、単にソースを見て、それが見えます。ない!
他のヒント
のCore Audioは、この機能の多くは、「オーディオツールボックス」として収集されるなど、読み書きさまざまなファイル形式を、エンコーディング間の変換、ストリームの外枠を引いて、多くのことをカバーしています。 Core Audioのも、オーディオ再生のため、キャプチャ、または両方のストリームを処理するための複数のAPIを提供しています。最低レベルの1だけではなく(それが圧縮されたフォーマットで動作するので、オーディオユニットの上に実装され、オーディオキューは、非常に簡単ですなど、オーディオ非圧縮(PCM)で動作のAudio Units、で、効果を適用するためのいくつかの素晴らしいものを持って、ミキシングPCM)といくつかのスレッドの課題からあなたを救います。 OpenALのは、また、オーディオユニットの上に実装されています。あなたはまだPCMを使用する必要がありますが、少なくとも、スレッドは怖いではありません。違いは、それがアップルからではないのですから、そのプログラミングの規則は、Core AudioのとiOSの残りの部分とは全く異なっているということです(ほとんど明らかに、それはプッシュAPIです:あなたはOpenALのでストリーミングしたい場合は、彼らがきたかどうかを確認するために、あなたはあなたのソースをポーリング新しいものに自分のバッファとプッシュを使い果たし、新しいサンプルが再生のために必要とされるときにコールバックを得るという点で対照的に、オーディオキューとのAudio Unitsは、プル型です)。
。は、より高いレベルでは、あなたが見てきたように、メディアプレーヤーやAV財団のような素敵なものがあります。これらは、あなただけのファイルを再生している場合は非常に簡単ですが、あなたはなどの影響、信号処理、のいくつかの種類をしたい場合は、おそらくあなたに深い十分なアクセス権を与えるつもりはありません。