1

我有一个包含大约 2000 个短 mp3 文件的程序。我现在将所有这些文件存储到文件夹Supporting Files中,当我想玩时,我调用这个函数:

-(void)playSound:(NSString *)mySoundFileName{
    NSString *filePath = [[NSBundle mainBundle] pathForResource:mySoundFileName ofType:@"mp3"];  
    if ([NSData dataWithContentsOfFile:filePath]) {  
        url = [NSURL fileURLWithPath:filePath];
        audioPlayer = [[AVAudioPlayer alloc]
                           initWithContentsOfURL:url
                           error:nil];
        [audioPlayer play];  
    } 
}

但是,我第一次播放声音时,搜索/加载文件总是需要很长时间。更具体地说,在按下“播放声音”按钮播放声音后,我必须等待至少 5 秒才能播放。之后播放其他声音就可以了,即当我按下“播放声音”按钮时它几乎立即播放。您有什么建议可以更有效地存储和播放这些文件吗?非常感谢你

4

1 回答 1

3

有时,AVAudioPlayer 最初开始播放可能会花费不希望的时间。解决这个问题的一个好方法是在调用 play 之前进行初始 alloc/init。这样玩家就可以在用户按下播放按钮之前播放。此外,在游戏前调用[player prepareToPlay];将有助于稍微提高性能。

于 2012-09-08T04:38:21.080 回答