swift3 - Reproducción de sonido Swift 3
avfoundation avaudioplayer (4)
Es posible que desee utilizar SwiftySound . Te permite reproducir sonidos fácilmente en Swift 3 y Swift 4.
Sound.play(file: "ClickSound.mp3")
Ok, he investigado esto y he intentado muchas formas diferentes de reproducir un sonido cuando se hace clic en un botón.
¿Cómo puedo reproducir un sonido cuando se hace clic en un botón en swift 3? Tengo mi sonido en una carpeta llamada Sonidos y el nombre es ClickSound.mp3
Tienes que evitar que el jugador sea eliminado, conseguirlo en una propiedad de tu controlador de vista
El único problema real es que debe almacenar su reproductor como una propiedad u otra variable que no se destruirá de inmediato; si no lo hace, el sonido se detendrá de inmediato.
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 :(
}
}
Una forma mucho más fácil de hacer esto es poner la siguiente línea de código en la función de presionar un botón (Nota: solo funciona en el kit de sprites):
run(SKAction.playSoundFileNamed("ClickSound.mp3", waitForCompletion: false))
Espero que esto ayude :)
Usuario debajo de esta función
//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)
}
}
Primero importa AudioToolbox import AVFoundation
Espero que funcione :)