播放AVAudioPlayer导致延迟
问题描述:
我使用AVAudioPlayer对象来播放aif声音文件,除非游戏结束,否则应该继续播放。我已经AVAudioPlayer的伊娃称为backgroundPlayer,我把它架在viewDidLoad方法:播放AVAudioPlayer导致延迟
-(void)viewDidLoad{
NSURL *backgroundURL=[NSURL fileURLWithPath:[[NSBundle
mainBundle]pathForResource:@"bgLoop" ofType:@"aif"]];
backgroundPlayer=[[[AVAudioPlayer alloc] initWithContentsOfURL:backgroundURL
error:nil] retain];
backgroundAudioPlayer.numberOfLoops=-1;
}
然后我在viewWillAppear中方法玩:
-(void)viewWillAppear:(BOOL)animated{
TrafficAppDelegate *delegate=[UIApplication sharedApplication].delegate;
if (delegate.shouldPlaySFX)
[backgroundPlayer play];
}
有了这一切时设置我推动我的按钮,将视图控制器推到堆栈,我挂起了大约2-3秒,然后才出现视图。如果我在viewWillAppear方法中注释[backgroundPlayer play]命令,延迟就会消失。我不应该使用AVAudioPlayer类来播放这种声音吗?我的意思是声音可以持续几分钟,甚至几小时。如果选择不是问题,那么会导致延迟?在此先感谢
答
您是否在您的代码中添加了[backgroundPlayer prepareToPlay]后尝试过这种情况?我相信这将解决延迟问题。
答
发生在你第一次尝试播放声音时。您可以在appdelegate中播放短暂的无声音,以便在您真正需要时响应AVAudioPlayer
。