サウンドファイルを使用するアプリケーションの1つに取り組んでいます。このアプリケーションには、スライダーの実装が1つあります。スライダーの比率に基づいて、すべてのファイルが処理されて音量が設定されます。しかし、このボリュームエフェクトでは、フィールドAとBのサウンドセットがあると仮定して、2つの異なるファイルセットのサウンドの組み合わせがあります。
Aファイルの75%とBファイルの25%の組み合わせがあります。
サウンドファイルを使用するアプリケーションの1つに取り組んでいます。このアプリケーションには、スライダーの実装が1つあります。スライダーの比率に基づいて、すべてのファイルが処理されて音量が設定されます。しかし、このボリュームエフェクトでは、フィールドAとBのサウンドセットがあると仮定して、2つの異なるファイルセットのサウンドの組み合わせがあります。
Aファイルの75%とBファイルの25%の組み合わせがあります。
2人のavaudioplayersを順番に初期化するという簡単な方法でそれを達成できます。彼らは一緒にプレイします:
{
...
NSString *songA = [[NSBundle mainBundle] pathForResource:@"songA" ofType:@"mp3"];
NSError *soundError = nil;
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:songA] error:&soundError];
if(self.player == nil)
NSLog(@"%@",soundError);
else
{
[self.player setDelegate:self];
[self.player setVolume:0.75];
[self.player play];
}
NSString *songB = [[NSBundle mainBundle] pathForResource:@"songB" ofType:@"mp3"];
soundError = nil;
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:songB] error:&soundError];
if(self.player == nil)
NSLog(@"%@",soundError);
else
{
[self.player setDelegate:self];
[self.player setVolume:0.25];
[self.player play];
}
...
}
複数の音を同時に鳴らす
複数のサウンドを同時に再生するには、サウンドごとに 1 つの再生 Audio Queue オブジェクトを作成します。Audio Queue ごとに、AudioQueueEnqueueBufferWithParameters 関数を使用して、オーディオの最初のバッファを同時に開始するようにスケジュールします。
iOS 3.0 以降では、サポートされているほぼすべてのオーディオ フォーマットを同時再生に使用できます。つまり、表 1-1 で説明されているように、ソフトウェア デコードを使用して再生できるすべてのフォーマットです。プロセッサ効率の高い複数再生を行うには、リニア PCM (非圧縮) または IMA4 (圧縮) オーディオを使用します。
呼び出す必要があると思いますAudio Queue
Audio Queueのリファレンスはこちら
ボリュームを A の 75% と B の 25% に設定するには、OpenAL を使用してこれを実現できます。