【发布时间】:2013-01-04 18:31:28
【问题描述】:
当人们在我的应用程序中按下某些按钮时,我想播放一些简单的声音效果,我已经尝试了几件事,但我总是遇到延迟,使声音看起来不同步。
我已经按照教程here 进行了操作,因此我尝试了音频服务中的构建,但它有延迟,我尝试了 AVAudioPlayer,但它也有延迟,即使我使用了“ prepareToPlay”。
我真的必须安装像Finch 这样的大而杂乱的库才能在我的简单应用中获得没有延迟的简单音效吗?
希望你能帮我澄清一下!
更新
音频服务代码:
NSURL *soundURL = [[NSBundle mainBundle] URLForResource:@"PlopsX4"
withExtension:@"aif"];
AudioServicesCreateSystemSoundID((CFURLRef)soundURL, &sound1);
AudioServicesPlaySystemSound(sound1);
viewDidLoad 中 AVAudioPlayer 的代码:
NSURL *soundURL = [[NSBundle mainBundle] URLForResource:@"PlopsX4"
withExtension:@"aif"];
self.avSound = [[AVAudioPlayer alloc]
initWithContentsOfURL:soundURL error:nil];
[self.avSound prepareToPlay]
我要播放文件的方法中的 AVAudioPlayer 代码:
[self.avSound play];
【问题讨论】:
-
愚蠢的问题,但你确定你的音频文件的开头没有片刻的沉默吗?您是否经历过诸如大胆之类的事情?
-
另外,你是如何测试的?设备?模拟器?如果它在设备上,您正在测试什么硬件?
-
你搜索过吗。在这个问题上似乎还有很多其他问题。一些建议预加载一些 hack,其他建议使用系统声音 (SystemSoundID)
-
@DanF 开始时没有片刻的沉默。我自己发出了声音。第二次播放,立即播放……这只是第一次。我正在测试连接到我的 macbook air 的最新一代 iPod touch。
-
@BjörnKaiser 刚刚做了。会喜欢上面的一些cmets。
标签: iphone objective-c ios audio ios6