ส่วนใหญ่โดยเฉพาะอย่างยิ่งที่คุณอาจต้องการที่จะใช้AVFoundation มีสิ่งจำเป็นทั้งหมดสำหรับการทำงานกับสื่อโสตทัศน์
อัปเดต:เข้ากันได้กับSwift 2 , Swift 3และSwift 4ตามที่คุณบางคนแนะนำในความคิดเห็น
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)
}
}
สวิฟต์ 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)
player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileType.mp3.rawValue)
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