序言
在iOS设备中,声音分为两种,一种是音效输出,一种是音频输出。音效,就是利用系统的声音,用来播放比较短的音频,主要用途是用来做系统的提示音,使用的框架是AudioToolBox。
音效播放
1.声明一个声音ID(SoundID),靠这个声音ID来区分哪个音频(音效),类型是无符号长整形的
2.创建播放声音的服务(告诉系统 有一个可以使用的SoundID) 声音文件的路径 SoundID。
3.播放声音
示例代码
- 获取音效文件路径
guard let url = Bundle.main.url(forResource: "music", withExtension: "mp3", subdirectory: "music.bundle") else {
print("获取文件路径失败")
return
}
- 生成一个 SystemSoundID
var id: SystemSoundID = 0
AudioServicesCreateSystemSoundID(urlRef, &id)
- 播放音效 - 带振动
if #available(iOS 9.0, *) {
AudioServicesPlayAlertSoundWithCompletion(id) {
// 执行回调
completionBlock()
// 4.释放
AudioServicesDisposeSystemSoundID(id)
}
} else {
AudioServicesPlaySystemSound(id)
}
播放音效 - 不带振动
if #available(iOS 9.0, *) {
AudioServicesPlaySystemSoundWithCompletion(id) {
// 执行回调
completionBlock()
// 4.释放
AudioServicesDisposeSystemSoundID(id)
}
} else {
AudioServicesPlaySystemSound(id)
}