我使用SwiftySound在我的应用程序(射击游戏)上实现了声音效果。 但是如果在触摸目标时设置声音,有时声音不会播放 我不知道为什么有时会播放,但有时候不播放。
代码:
class ViewController: ViewController {
var soundManager: SoundManager = SoundManager()
//.....
func touchedTarget(){
soundManager.playSE()
}
}
class SoundManger {
let tapSE: Sound = Sound(url:Bundle.main.url(forResource: "tap", withExtension: "mp3")!)!
init(){
}
func playSE {
tapSE.play(numberOfLoops: 0, completion: nil)
}
}
修改
1.在“playSE”中添加了“DispatchQueue.main.async {}但无效。
func playSE {
DispatchQueue.main.async {
tapSE.play(numberOfLoops: 0, completion: nil)
}
}
2.在“triggeredTarget()”中添加了“DispatchQueue.main.async {}”,但没有效果。
func touchedTarget(){
DispatchQueue.main.async {
soundManager.playSE()
}
}
答案 0 :(得分:0)
问题可能是你应该在主线程上在后台线程上调用它。
在您的视图控制器或您调用声音的任何地方尝试使用:
DispatchQueue.main.async {
SoundManager().playSE()
}