web-dev-qa-db-fra.com

Swift 3 lecture sonore

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

16
shane

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 :)

18
Amit Rawat

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.

source:

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 :(
        }
}
14
Amr Lotfy

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")
5
Adam

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 :)

3
Luke Roberts