Am besten bevorzugen Sie die Verwendung von AVFoundation . Es bietet alle wichtigen Informationen für die Arbeit mit audiovisuellen Medien.
Update: Kompatibel mit Swift 2 , Swift 3 und Swift 4, wie von einigen von Ihnen in den Kommentaren vorgeschlagen.
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 (iOS 13 kompatibel)
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)
}
}
Stellen Sie sicher, dass Sie den Namen Ihrer Melodie sowie die Erweiterung ändern .
Die Datei muss ordnungsgemäß importiert werden ( Project Build Phases
> Copy Bundle Resources
). Möglicherweise möchten Sie es assets.xcassets
für mehr Komfort platzieren.
Für kurze Audiodateien sollten Sie sich für nicht komprimierte Audioformate entscheiden, z. B. .wav
weil sie die beste Qualität und eine geringe CPU-Auswirkung haben. Der höhere Speicherplatzverbrauch sollte für kurze Sounddateien keine große Rolle spielen. Je länger die Dateien sind, desto mehr möchten Sie möglicherweise ein komprimiertes Format wie z. B. .mp3
S. wählen. Überprüfen Sie die kompatiblen Audioformate von CoreAudio
.
Wissenswertes: Es gibt nette kleine Bibliotheken, die das Abspielen von Sounds noch einfacher machen. :)
Zum Beispiel: SwiftySound