En iyisi AVFoundation'ı kullanmak isteyebilirsiniz . Görsel-işitsel medya ile çalışmak için gerekli tüm unsurları sağlar.
Güncelleme: Bazılarınız tarafından yorumlarda önerildiği gibi Swift 2 , Swift 3 ve Swift 4 ile uyumludur .
Hızlı 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)
}
}
Hızlı 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 uyumlu)
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)
}
}
Ayarınızın adını ve uzantıyı değiştirdiğinizden emin olun .
Dosyanın doğru bir şekilde içe aktarılması gerekir ( Project Build Phases> Copy Bundle Resources). Daha assets.xcassetsfazla kolaylık sağlamak için yerleştirmek isteyebilirsiniz .
Kısa ses dosyaları için .wav, en iyi kalite ve düşük cpu etkisi olduğu için sıkıştırılmamış ses formatları için gitmek isteyebilirsiniz . Daha yüksek disk alanı tüketimi kısa ses dosyaları için çok önemli olmamalıdır. Uzun dosyalardır, aşağıdaki gibi bir sıkıştırılmış biçimi için gitmek isteyebilirsiniz .mp3. Vb pp edin uyumlu ses formatları arasında CoreAudio.
Eğlence-gerçek: Çalma seslerini daha da kolaylaştıran düzgün küçük kütüphaneler var. :)
Örneğin: SwiftySound