2

Learning Core Audio bookの例に取り組んできました。この本は、API とその仕組みについてはよく説明していますが、API を Cocoa プロジェクトに統合する方法については詳しく説明していません。

コア オーディオ/MIDI プログラミングと obj-c クラスを混在させる方法がよくわかりません。これを行う際の標準的な方法を説明する優れたチュートリアルはありますか?

この時点で私の心にある質問のいくつかは次のとおりです。

  • userdata 構造体が必要な場合、これをある種の obj-c インスタンス変数または @properties に置き換えることができますか、それとも C 構造体でなければなりませんか?
  • オーディオ コールバック関数をコードのどこに配置すればよいですか? @implementation の外のどこかに座ることはできますか?
  • コールバック関数は C で記述されているため、目的の C 関数を呼び出したり、関数内のクラス プロパティにアクセスしたりするにはどうすればよいですか?
4

2 に答える 2

5

コールバックがクラスインスタンスを void* として宣言する場合、通常はクラスインスタンスをユーザーデータとして渡します。その後、コールバックはそれをオブジェクトとしてキャストし、その中の任意のメソッドを呼び出すことができます。

于 2013-03-06T23:32:56.043 に答える
1

C は Objective C の適切なサブセットです。そのため、C データ型と呼び出し規約を使用するだけで、Core オーディオを Cocoa と統合できます。C ソース コードは、Objective C 実装内だけでなく、個別の .c ファイルにも入れることができます。Objective C オブジェクトは、C コールバック内の C 構造体へのポインターとして扱うことができます。

また、リアルタイム Core Audio コールバック内で Objective C メッセージングを使用することはお勧めしません。

于 2013-03-07T22:51:12.100 に答える