2009-04-10 29 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文件同時播放。