De preferência, você pode querer usar o AVFoundation . Ele fornece todos os elementos essenciais para trabalhar com mídia audiovisual.
Atualização: Compatível com Swift 2 , Swift 3 e Swift 4, conforme sugerido por alguns de vocês nos comentários.
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 (compatível com 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)
}
}
Certifique-se de alterar o nome da sua música e a extensão .
O arquivo precisa ser importado corretamente ( Project Build Phases
> Copy Bundle Resources
). Você pode colocá-lo assets.xcassets
para maior comodidade.
Para arquivos de som curtos, você pode optar por formatos de áudio não compactados, como os .wav
que têm a melhor qualidade e o menor impacto na CPU. O maior consumo de espaço em disco não deve ser um grande problema para arquivos de som curtos. Quanto mais longos os arquivos, você pode optar por um formato compactado, como .mp3
etc. pp. Verifique os formatos de áudio compatíveis de CoreAudio
.
Curiosidade: Existem pequenas bibliotecas organizadas que tornam a reprodução de sons ainda mais fácil. :)
Por exemplo: SwiftySound