AVAudioPlayer.play() does not play sound

The problem is that Player, your AVAudioPlayer, is a local variable. So it goes out of existence immediately - before it can even start playing, let alone finish playing.

Solution: make it a property instead, so that it will persist.