私は iPhone 自体のオーディオ ハードウェアに詳しくありませんが、内部の合成ルーチンを公開していないため、再処理のためにアウトバウンド オーディオをキャプチャできなくても驚かないでしょう。
特にオーディオ ハードウェアを直接プログラミングすることに慣れていない場合は、代わりにドラムの動作と時間間隔を記録し、元の再生と同じ方法でオーディオ ファイルを再生する方がはるかに簡単だと思います。これには、オーディオを直接変更することなく、編集、スローダウン、スピードアップ、およびその他のトリックを実行できるという利点もあります。
ドラムが打たれると、NSMutableArray に追加する必要があります。以下のサンプルは、drumType (たとえば、叩かれるドラム ボタンのタグ) と、次のドラム ヒットまでの遅延 (NSTimeInterval) である DrumNextDelay に基づいています。これを処理する方法は明らかに他にもありますが、これは単なる例です。
次のように、次の時間間隔で performSelector を繰り返し呼び出すことで、再生の大まかなバージョンを実装できます。
- (void) startPerformance {
self.drumIndex = -1;
[self performSelector:@selector(playDrumBeat) withObject:nil afterDelay:0];
}
- (void) playDrumBeat {
self.drumIndex++;
[self playDrum:[[drumBeats objectAtIndex:self.drumIndex] drumType]];
[self performSelector:@selector(playDrumBeat) withObject:nil afterDelay:[[drumBeats objectAtIndex:self.drumIndex] drumNextDelay]];
}
これは OS でタイミングの問題が発生しやすい可能性がありますが、最初のカットとしてこのようなものを追求し、それが機能するかどうかを確認します.
バーニー