2

iOSで動作するデジタル オーディオ ワークステーションのアーキテクチャを開発しています(主に、OS X もサポートしようとしています)。Apple による何マイルにもわたるドキュメントとそのフレームワークのリファレンスをゆっくりと調べています。

私は DSP の経験がありますが、iOS は私にとってより新しいものであり、非常に多くのオブジェクト、チュートリアル (iOS の古いバージョンでも)、およびさまざまな API を備えたさまざまなフレームワークがあります。最初に正しいものを選択するか、それらの組み合わせを選択するようにしたいだけです。

アーキテクチャの目標は次のとおりです。

  • サウンド トラックのサンプル アクセス(ファイル内のサンプルにアクセス)
    • iPodライブラリの曲
    • ローカルファイルの曲
    • リモートサーバー上の曲
    • ラジオ局 (無限の長さの曲)
  • エフェクトチェーン(複数のイコライザー、またはピッチとテンポの同時変更)
  • 複数のチャンネルとミキシング(サラウンドも含む)
  • 携帯性
    • 少なくとも Mac OS X
    • iOS 6+ サポート (iOS 5 以下は不要)
    • 符号付き整数ではなく、 32 ビット floatでのサンプル アクセス。
  • 簡単な Objective-C API (DSP と処理はもちろん C++ で行われます)
  • 録音、再生
    • ファイルに記録 (選択したコーデック)、またはネットワーク経由で送信 (VoIP)
    • 異なる出力 (Mac の場合) または iOS のスピーカー/ヘッドフォンでの再生
    • 音量・ミュートの変更
    • バックグラウンド オーディオのサポート
  • リアルタイムのサンプル処理
    • 現在再生中の曲のイコライザー
    • リアルタイムのサンプル操作
  • マルチスレッド

何も逃さなかったといいのですが、それが最も重要な目標です。

私の研究

私はほとんどのフレームワークを調べましたが (詳細はそれほど詳しくありません)、ここに私が理解したものがあります。Apple は、iOS でオーディオを使用するための次のフレームワークをリストしています。

  • メディア プレーヤー フレームワーク
  • AV Foundation フレームワーク
  • オーディオ ツールボックス フレームワーク
  • Audio Unit フレームワーク
  • OpenAL フレームワーク

Media Player と AV Foundation は高レベルの API であり、サンプルに直接アクセスすることはできません。反対側の OpenAL は音声を録音できません。これで、Audio Toolbox と Audio Unit フレームワークは終了です。違いの多くはここで説明されています:これらすべてのオーディオ フレームワークの違いは何ですか?

私が理解できる限りでは、MIDI は現在必要とされていないため、Audio Toolbox が最適です。しかし、Audio Toolbox には、録音、再生など、より専門的な制御のための情報やチュートリアルがほとんどありません。ただし、Audio Units にはさらに多くの情報があります。

最初の質問: Audio Queue Services とは正確には何ですか? また、どのフレームワークに属していますか?

そして最後の質問:

望ましい目標のほとんどを達成できるようにするには、どのフレームワークを使用する必要がありますか?

フレームワーク、クラスの組み合わせを提案することもできますが、あなたの答えと、目標を達成するためにどのクラスを使用するかをより詳細に説明してください。できるだけ高レベルの API をお勧めしますが、目標を達成するために必要なレベルはできるだけ低くします。サンプルコードのリンクも大歓迎です。

ご助力ありがとうございます。

4

1 に答える 1

4

Audio Units は最も低いレベルの iOS オーディオ API であり、Audio Queues が構築される API です。また、Audio Units はアプリのレイテンシを最小限に抑え、可能な限りリアルタイム処理に近づけます。ただし、これは C API であるため、アプリで独自のオーディオ メモリ管理を行う必要がある場合があります。

AVFoundation フレームワークは、アプリが音楽ライブラリ アセットに簡単にアクセスできるようにする場合があります。

アプリは、オーディオ データを明示的に公開する他のアプリからのサウンドのみを処理できます。これには、ミュージック プレーヤー アプリは含まれませんが、Apple の Inter-App Audio API とサード パーティの Audiobus API を使用する一部のアプリは含まれます。

于 2013-06-18T21:04:51.563 に答える