Найбільш переважно ви можете використовувати AVFoundation . Він пропонує всі необхідні для роботи з аудіовізуальними носіями інформації.
Оновлення: сумісний із Swift 2 , Swift 3 та Swift 4, як пропонують деякі з вас у коментарях.
Швидкий 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)
}
}
Швидкий 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 сумісний)
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)
}
}
Не забудьте змінити назву мелодії, а також розширення .
Файл потрібно імпортувати належним чином ( Project Build Phases
> Copy Bundle Resources
). Ви можете розмістити його assets.xcassets
для більшої зручності.
Для коротких звукових файлів ви можете скористатись аудіоформатами, що не стискаються, .wav
оскільки вони мають найкращу якість та низький вплив процесора. Більший обсяг дискового простору не повинен бути великою справою для коротких звукових файлів. Чим довші файли, тим більше вам може знадобитися стиснутий формат, наприклад, .mp3
п. П. Перевірте сумісні формати звукуCoreAudio
.
Факт забави: Є акуратні маленькі бібліотеки, які роблять звуки ще простішими. :)
Наприклад: SwiftySound