Ok, j'ai étudié la question et j'ai essayé de nombreuses façons de jouer un son lorsqu'un bouton est cliqué.
Comment jouer un son lorsqu'un bouton est cliqué dans Swift 3? J'ai mon son dans un dossier nommé Sounds et le nom est ClickSound.mp3
Utilisateur sous cette fonction
//MARK:- PLAY SOUND
func playSound() {
let url = Bundle.main.url(forResource: "ClickSound", withExtension: "mp3")!
do {
player = try AVAudioPlayer(contentsOf: url)
guard let player = player else { return }
player.prepareToPlay()
player.play()
} catch let error as NSError {
print(error.description)
}
}
première importation AudioToolbox importation AVFoundation
Esperons que ça marche :)
Vous devez empêcher le joueur d'être éliminé, le placer dans une propriété de votre contrôleur de vue
Le seul vrai problème est que vous devez stocker votre lecteur en tant que propriété ou autre variable qui ne sera pas détruite immédiatement - sinon, le son s'arrêtera immédiatement.
var player : AVAudioPlayer?
func playSound(){
let path = Bundle.main.path(forResource: "alert", ofType:"mp3")!
let url = URL(fileURLWithPath: path)
do {
let sound = try AVAudioPlayer(contentsOf: url)
self.player = sound
sound.numberOfLoops = 1
sound.prepareToPlay()
sound.play()
} catch {
print("error loading file")
// couldn't load file :(
}
}
Vous voudrez peut-être utiliser SwiftySound . Il vous permet de jouer facilement des sons dans Swift 3 et Swift 4.
Sound.play(file: "ClickSound.mp3")
Un moyen beaucoup plus facile de le faire est de mettre la ligne de code suivante dans la fonction de votre bouton pressé (Remarque: ne fonctionne que dans le kit Sprite):
run(SKAction.playSoundFileNamed("ClickSound.mp3", waitForCompletion: false))
J'espère que cela t'aides :)