Jogo atrasado quando o AVAudioPlayer é reproduzido

Estou criando um jogo em que o usuário controla um personagem com um jetpack. Quando o jetpack cruza um diamante, adiciono o diamante ao total e depois toco um som. No entanto, o som faz o jogo parar por um décimo de segundo ou mais e interrompe o fluxo. Este é o código que estou usando:

var diamondSound = NSBundle.mainBundle().URLForResource("diamondCollect", withExtension: "wav")!
var diamondPlayer = AVAudioPlayer?()

    class GameScene: SKScene{

      override func didMoveToView(view: SKView) {

            do {
                 diamondPlayer = try AVAudioPlayer(contentsOfURL: diamondSound)
                 guard let player = diamondPlayer else { return }

                 player.prepareToPlay()
            } catch let error as NSError {
                 print(error.description)
            }
       }

E depois:

    override func update(currentTime: CFTimeInterval) {

        if character.intersectsNode(diamond){
            diamondPlayer?.play()
            addDiamond()
            diamond.removeFromParent()
        }

    }

Também estou usando o Sprite Kit, se isso importa. Qualquer ajuda é muito apreciada!

questionAnswers(1)

yourAnswerToTheQuestion