1

我正在开发一个带有声音文件的应用程序。在此应用程序中,有一个滑块实现。在滑块比率的基础上,所有文件都将被处理以设置音量。但是有了这个音量效果,就会有两组不同文件的声音组合,假设有 A 和 B 的声音集。

将有 75% 的 A 文件和 25% 的 B 文件的组合。

4

2 回答 2

2

您可以通过简单的方式实现它,依次启动 2 个 avaudioplayer,它们将一起播放:

{
...
    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

Apple 的文档中

同时播放多个声音

要同时播放多个声音,请为每个声音创建一个播放音频队列对象。对于每个音频队列,使用 AudioQueueEnqueueBufferWithParameters 函数安排音频的第一个缓冲区同时启动。

从 iOS 3.0 开始,几乎所有支持的音频格式都可以同时播放——即所有可以使用软件解码播放的音频格式,如表 1-1 中所述。对于处理器效率最高的多重播放,请使用线性 PCM(未压缩)或 IMA4(压缩)音频。

我想你需要调用Audio Queue

这是Audio Queue的参考

要将音量设置为 A 的 75% 和 B 的 25%,您可以使用 OpenAL 来实现此目的。

于 2013-02-12T10:39:48.617 回答