当我按下UI中的按钮时,我正在播放一个wav文件以提供一些音频反馈。我的问题是当你第一次按下按钮时有一个延迟(大约1.5秒),而声音文件“sound.wav”被加载和缓存。有没有办法预先缓存此文件(可能在我的viewDidLoad中)?我想我可以通过播放viewDidLoad来实现它,但是真的需要禁用音频,这样每次应用程序启动它都不会“蜂鸣”。
非常感谢和帮助。加里
EDIT_001: 看起来我的问题与this post重复,除非有人有任何新信息?也许是一种暂时降低播放音量的方法,除非每次通过运行循环清除音频。
EDIT_002: 我目前正在使用SystemSoundID / AudioServices:
-(void)playButtonSound {
NSBundle *bundle = [NSBundle mainBundle];
NSString *soundPath = [bundle pathForResource:@"buttonClick_002" ofType:@"wav"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:soundPath], &soundID);
AudioServicesPlaySystemSound(soundID);
}
答案 0 :(得分:0)
在视图加载时使用performSelectorInBackground:@selector(<A SELECTOR>)
将wav文件加载到内存中。然后在需要时播放声音;)
希望这有帮助!
答案 1 :(得分:0)
最后我发现使用AVAudioPlayer允许我在viewDidLoad中使用我需要的预载(见下文)进行预加载:
[audioPlayer prepareToPlay];
然后在按钮方法中使用(见下文),我需要按需播放声音。
[audioPlayer play];
加里