2011-07-28 13 views
2

リンゴのサンプルコードouriotouchを変更して、マイク入力から波形を出力する代わりに波形を生成し、オーディオファイルを修正したい。私はそれをやろうとしましたが、どこで何を変えるべきか理解できません。それが達成される方法について誰かが私を導くことができます。オーディオファイルからデータを読み取るためにAuriotouchのサンプルコードを変更する

おかげで、スピーカーはデータのために飢えている時はいつでもレンダリングコールバックが起こるAudioUnitRender

という名前の関数のコールバックをレンダリングする内部

+0

こんにちは..それを解決することができました。もしそうなら、私を助けることができますか? –

答えて

1

ルック。

IIRC A.T.単にしかし、多くのサンプルはもちろん

この機能を使用してマイクから必要とされているグラブ、とにかく

を待って何もできなくなりますので、それは失敗しますラウンドは初めて、ちょうどこの機能をコメントアウトし、代わりにバッファを自分で埋めますあなたのファイルからのサンプル(おそらく、おそらくメモリにロードしたいと思うでしょう、おそらくfileIOが優先度の高いスレッドを詰まらせたくないと思うかもしれません)。

これはおそらく何らかの種類のAudioFileクラスを作成し、レンダリングコールバックを設定するときは、このクラスのインスタンスへの参照を渡します。そうすれば、このレンダリングコールバック(バニラC関数、つまりクラスのメンバーではないので、クラスデータにアクセスする他の方法はありません)からデータにアクセスできるようになります。何か面倒なことをしたいのでなければファイルレベルの変数を使用)。

このAudioFile * audiofile NONATOMICをプロパティとして作成することを忘れないでください。プロパティの場合、他のスレッドがオブジェクト内にあり、その結果ロックされているため、レンダリングコールバックが待機しないようにしてください。

関連する問題