【问题标题】:iOS: how to conveniently store and play many mp3 filesiOS:如何方便地存储和播放许多 mp3 文件
【发布时间】:2012-09-08 04:33:36
【问题描述】:

我有一个包含大约 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 秒才能播放。之后播放其他声音就可以了,即当我按下“播放声音”按钮时它几乎立即播放。你有什么建议可以更有效地存储和播放这些文件吗?非常感谢

【问题讨论】:

  • 您可以使用 AudioToolbox 框架从它们中创建系统声音,理论上可以预加载文件。

标签: ios audio mp3


【解决方案1】:

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

【讨论】:

  • 我在viewDidLoad中添加了[player prepareToPlay],效果明显提升
  • @DavidNg 很高兴听到这个消息,如果这篇文章对您有所帮助,请标记为正确:)
  • 好的,在我等了一天之后,看来你的答案是正确的。另外,如果您发现我的问题很独特,您也可以标记我的问题吗:)?
猜你喜欢
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 2015-04-23
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多