当ViewController调用播放音效的方法时,使用定时器的动画停止片刻(声音正常播放)。
在这种情况下,当您触摸叶子图像时,声音(tap.mp3)会正常播放但是动画会停止片刻。
为什么动画会停止?我该如何解决?
//move blue and purple to the second row
if (winsize < 1600) {
if (i === 0) {
$(this.items[i]).css('transform', `translate(${ winsize/2 - 1.5*grow}px, 170px)`)
}
if(i === this.items.length - 1) {
$(this.items[i]).css('transform', `translate(${ -1*(winsize/2 - 1.5*grow)}px, 170px)`)
}
}
}
答案 0 :(得分:0)
我认为问题是因为AVAudioPlayer(contentsOf: audioFileURL!)
阻止了用户界面并且暂时让动画延迟
要修复它,您可以尝试在后台队列上创建AVAudioPlayer
,然后在主队列上播放
func playSE(se: String) {
DispatchQueue.global(qos: .background).async {
let audioFileURL = Bundle.main.url(forResource: se, withExtension: "mp3")
do {
try sePlayer = AVAudioPlayer(contentsOf: audioFileURL!)
} catch let error {
print(error.localizedDescription)
}
DispatchQueue.main.async {
sePlayer?.play()
}
}
}