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.xcassets
fazla 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