Najkorzystniej możesz użyć AVFoundation . Zawiera wszystkie niezbędne elementy do pracy z mediami audiowizualnymi.
Aktualizacja: Kompatybilny ze Swift 2 , Swift 3 i Swift 4, zgodnie z sugestiami niektórych z was w komentarzach.
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)
}
}
Szybki 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 (kompatybilny z 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)
}
}
Pamiętaj, aby zmienić nazwę swojej melodii, a także rozszerzenie .
Plik musi zostać poprawnie zaimportowany ( Project Build Phases
> Copy Bundle Resources
). Możesz go umieścić assets.xcassets
dla większej wygody.
W przypadku krótkich plików dźwiękowych możesz wybrać nieskompresowane formaty audio, na przykład .wav
ponieważ mają one najlepszą jakość i niski wpływ na procesor. W przypadku krótkich plików dźwiękowych większe zużycie miejsca na dysku nie powinno być wielkim problemem. Im dłużej pliki są, można przejść do skompresowanego formatu takiego jak .mp3
itp pp. Sprawdź kompatybilnych formatów audio z CoreAudio
.
Ciekawostka: istnieją zgrabne małe biblioteki, które sprawiają, że odtwarzanie dźwięków jest jeszcze łatwiejsze. :)
Na przykład: SwiftySound