所以这就是故事。
我有一个计时器,当我点击一个按钮时,timer.setEventHandler
呈现动画(类似于每125毫秒在UI中添加10个圆圈)。动画运行顺利,到目前为止一直很好。
现在我想在每次添加圆圈时添加声音(声音像哔哔声一样播放,但是从mp3文件播放)。我尝试了两种方法:
AudioServicesPlaySystemSound
动画很流畅,但声音播放不均匀。至少声音播放并没有落后于用户界面。
使用AVAudioPlay
我在单例类中准备了AVAudioPlay实例,并且每次动画逻辑在DispatchedQueue中调用play()
以确保声音在单独的线程中播放。第一次按下按钮时,动画会滞后。但是,当动画完成后我很快(在2秒内)再次按下按钮时,动画和声音将完美播放。但是,如果我等了很长时间,比如播放最后一个声音后的10秒,那么动画就会滞后,声音也会爆发。
我想知道iOS(我在iPad Air 2上运行iOS 10)是否真的让AVAudioPlay实例在未处于活动状态时处于睡眠状态。除非我在播放最后一个声音后的短时间(2秒)内按下按钮,否则AVAudioPlay线程将一直处于活动状态。
有什么想法吗?
答案 0 :(得分:0)
我明白了。
使用计时器每隔1秒以0伏的速度播放声音,以保持音频会话的活动状态。这听起来很愚蠢,但它就像一个魅力!