我已经在viewDidLoad中设置了AVAudioPlayer对象,根据Apple指南,将prepareToPlay称为viewDidLoad中的最后一行(我也尝试过awakeFromNib)。
当我按下我的播放按钮时,有一个暂停,因为它似乎加载文件,然后播放。
在audioPlayerDidFinishPlaying中,我用不同的声音重新加载播放器,当再次点击播放时,文件会立即播放。
什么会导致玩家在第一场比赛中落后?
感谢。
答案 0 :(得分:0)
延迟是由AVAudioPlayer初始化造成的。请参阅this answer。
答案 1 :(得分:0)
音频系统运行在几个异步软件进程(音频单元,操作系统驱动程序等)和硬件系统(DMA,DAC,音频放大器电源等)上,直到某些声音实际上才真正完全完成初始化一直播放扬声器或耳机。
这是一种方法:创建一个包含半秒静音的声音文件。在应用启动时,当您的应用和视图控制器仍在加载时,使用AVAudioPlayer播放此静音文件。现在当你的视图完成加载时,AVAudioPlayer应该准备好更快地播放后续的非静音,因为一些音频(静音)已经完全消失到扬声器。
答案 2 :(得分:-1)
AudioServicesCreateSystemSoundID
AudioServicesPlaySystemSound
AudioServicesDisposeSystemSoundID
...你只需要为你想要播放的每个声音存储SystemSoundID
。