SwiftySound在Swift中不起作用

时间:2018-05-30 08:40:50

标签: ios swift

我使用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()
    }
}

1 个答案:

答案 0 :(得分:0)

问题可能是你应该在主线程上在后台线程上调用它。

在您的视图控制器或您调用声音的任何地方尝试使用:

DispatchQueue.main.async {
    SoundManager().playSE()     
}