1

サウンドファイルを使用するアプリケーションの1つに取り組んでいます。このアプリケーションには、スライダーの実装が1つあります。スライダーの比率に基づいて、すべてのファイルが処理されて音量が設定されます。しかし、このボリュームエフェクトでは、フィールドAとBのサウンドセットがあると仮定して、2つの異なるファイルセットのサウンドの組み合わせがあります。

Aファイルの75%とBファイルの25%の組み合わせがあります。

4

2 に答える 2

2

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];
    }
...
}
于 2013-02-12T10:15:20.557 に答える
0

アップルのドキュメント

複数の音を同時に鳴らす

複数のサウンドを同時に再生するには、サウンドごとに 1 つの再生 Audio Queue オブジェクトを作成します。Audio Queue ごとに、AudioQueueEnqueueBufferWithParameters 関数を使用して、オーディオの最初のバッファを同時に開始するようにスケジュールします。

iOS 3.0 以降では、サポートされているほぼすべてのオーディオ フォーマットを同時再生に使用できます。つまり、表 1-1 で説明されているように、ソフトウェア デコードを使用して再生できるすべてのフォーマットです。プロセッサ効率の高い複数再生を行うには、リニア PCM (非圧縮) または IMA4 (圧縮) オーディオを使用します。

呼び出す必要があると思いますAudio Queue

Audio Queueのリファレンスはこちら

ボリュームを A の 75% と B の 25% に設定するには、OpenAL を使用してこれを実現できます。

于 2013-02-12T10:39:48.617 に答える