34

OpenAL が iPhone のサウンドのスキーマにどのように適合するかを誰か説明してもらえますか?

サウンドを処理するためのさまざまなレベルの API があるようです。より高いレベルのものは理解するのに十分簡単です。

しかし、私の理解は底に向かって曖昧になります。Core Audio、Audio Units、OpenAL があります。

これらの関係は何ですか?openAL はコア オーディオ (下位レベル オブジェクトの 1 つとしてオーディオ ユニットを含む) が置かれている基盤ですか?

OpenAL は Xcode によって文書化されていないようですが、その関数を使用するコードを実行できます。

4

2 に答える 2

37

これは私が考え出したものです:

基盤はCore Audioです。具体的には、Audio Units。

そのため、Audio Units がベース レイヤーを形成し、その上にいくつかの低レベル フレームワークが構築されています。そして、ケーブル全体が Core Audio と呼ばれます。

OpenAL はマルチプラットフォーム API です。作成者は、OpenGL の移植性を反映させようとしています。Creative Labs や Apple など、いくつかの企業が OpenAL のスポンサーを務めています。

そのため、Apple はこの API を基本的に Core Audio のシン ラッパーとして提供しています。これは、開発者がコードを簡単にプルできるようにするためだと思います。これは不完全な実装であるため、Core Audio でできることを OpenAL で実行したい場合は、OpenAL で実行されます。しかし、そうでなければそうはなりません。

直観に反するようなものです -- ソースを見るだけで、OpenAL がより低レベルであるかのように見えます。そうじゃない!

于 2010-10-26T17:29:41.297 に答える
36

Core Audio は、さまざまなファイル形式の読み取りと書き込み、エンコーディング間の変換、ストリームからのフレームの取り出しなど、多くのことをカバーしています。この機能の多くは、「オーディオ ツールボックス」としてまとめられています。Core Audio は、再生、キャプチャ、またはその両方のために、オーディオのストリームを処理するための複数の API も提供します。最も低いレベルのものは Audio Units で、非圧縮 (PCM) オーディオで動作し、エフェクトの適用、ミキシングなどに便利な機能を備えています。 PCM) を使用して、スレッド化の課題からあなたを救います。OpenAL も Audio Unit の上に実装されています。それでも PCM を使用する必要がありますが、少なくともスレッド化は怖くありません。違いはApple製ではないので、

ご覧のとおり、より高いレベルは、Media Player や AV Foundation などの優れた機能です。ファイルを再生するだけであれば、これらははるかに簡単ですが、ある種のエフェクトや信号処理などを行いたい場合は、おそらく十分な深さのアクセスが得られません.

于 2011-04-18T17:24:50.010 に答える