我正在开发一个带有声音文件的应用程序。在此应用程序中,有一个滑块实现。在滑块比率的基础上,所有文件都将被处理以设置音量。但是有了这个音量效果,就会有两组不同文件的声音组合,假设有 A 和 B 的声音集。
将有 75% 的 A 文件和 25% 的 B 文件的组合。
我正在开发一个带有声音文件的应用程序。在此应用程序中,有一个滑块实现。在滑块比率的基础上,所有文件都将被处理以设置音量。但是有了这个音量效果,就会有两组不同文件的声音组合,假设有 A 和 B 的声音集。
将有 75% 的 A 文件和 25% 的 B 文件的组合。
您可以通过简单的方式实现它,依次启动 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];
}
...
}
同时播放多个声音
要同时播放多个声音,请为每个声音创建一个播放音频队列对象。对于每个音频队列,使用 AudioQueueEnqueueBufferWithParameters 函数安排音频的第一个缓冲区同时启动。
从 iOS 3.0 开始,几乎所有支持的音频格式都可以同时播放——即所有可以使用软件解码播放的音频格式,如表 1-1 中所述。对于处理器效率最高的多重播放,请使用线性 PCM(未压缩)或 IMA4(压缩)音频。
我想你需要调用Audio Queue
要将音量设置为 A 的 75% 和 B 的 25%,您可以使用 OpenAL 来实现此目的。