2009-04-10 62 views
0

我有一堆声音片段,通过soundN.mp3命名为sound1.mp3。我想随机播放它们,所以我为每个片段设置了一个AVAudioPlayer,它们都存储在播放器中(AVAudioPlayer **)。在初始化所有内容后,我可以播放的唯一声音是sound1.mp3。我究竟做错了什么?多个AVAudioPlayers:我只能得到第一个初始化播放

感谢您的帮助,init代码如下。

players = (AVAudioPlayer**) malloc (sizeof (AVAudioPlayer*) * NUM_CLIPS); 
NSString* path; 
NSString* name; 
for(uint i = 0; i < NUM_CLIPS; i++){ 
    name = [NSString stringWithFormat: @"sound%d", i+1]; 
    path = [[NSBundle mainBundle] pathForResource:name ofType:@"mp3"]; 
    players[i] = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
    [players[i] setMeteringEnabled:YES]; 
    [players[i] prepareToPlay]; 
} 

回答

0

没关系,好​​像它是用的方式有问题prepareToPlay工作

2

这样做的原因是,MP3/AAC文件的硬件解码,并仅在一时间被解码。

0

James Brooks(jamesbrooks dot net)表示,将* .mp3文件更改为* .caf允许他用AVAudioPlayer播放多个声音。然而我个人却无法同时播放* .caf文件,但我可以通过获得* .aiff文件同时播放。

相关问题