Lo más preferible es que desee utilizar AVFoundation . Proporciona todos los elementos esenciales para trabajar con medios audiovisuales.
Actualización: Compatible con Swift 2 , Swift 3 y Swift 4 como lo sugieren algunos de ustedes en los comentarios.
Swift 2.3
import AVFoundation
var player: AVAudioPlayer?
func playSound() {
let url = NSBundle.mainBundle().URLForResource("soundName", withExtension: "mp3")!
do {
player = try AVAudioPlayer(contentsOfURL: url)
guard let player = player else { return }
player.prepareToPlay()
player.play()
} catch let error as NSError {
print(error.description)
}
}
Swift 3
import AVFoundation
var player: AVAudioPlayer?
func playSound() {
guard let url = Bundle.main.url(forResource: "soundName", withExtension: "mp3") else { return }
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try AVAudioSession.sharedInstance().setActive(true)
let player = try AVAudioPlayer(contentsOf: url)
player.play()
} catch let error {
print(error.localizedDescription)
}
}
Swift 4 (compatible con iOS 13)
import AVFoundation
var player: AVAudioPlayer?
func playSound() {
guard let url = Bundle.main.url(forResource: "soundName", withExtension: "mp3") else { return }
do {
try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default)
try AVAudioSession.sharedInstance().setActive(true)
/* The following line is required for the player to work on iOS 11. Change the file type accordingly*/
player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileType.mp3.rawValue)
/* iOS 10 and earlier require the following line:
player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileTypeMPEGLayer3) */
guard let player = player else { return }
player.play()
} catch let error {
print(error.localizedDescription)
}
}
Asegúrese de cambiar el nombre de su melodía, así como la extensión .
El archivo debe importarse correctamente ( Project Build Phases
> Copy Bundle Resources
). Es posible que desee colocarlo assets.xcassets
para mayor comodidad.
Para archivos de sonido cortos, es posible que desee optar por formatos de audio no comprimidos, .wav
ya que tienen la mejor calidad y un bajo impacto en la CPU. El mayor consumo de espacio en disco no debería ser un gran problema para los archivos de sonido cortos. Cuanto más largos sean los archivos, es posible que desee utilizar un formato comprimido, como .mp3
etc. pp. Compruebe los formatos de audio compatibles de CoreAudio
.
Dato curioso: hay pequeñas bibliotecas ordenadas que hacen que la reproducción de sonidos sea aún más fácil. :)
Por ejemplo: SwiftySound