0.倒入框架
import AVFoundation
1.懒加载创建音乐播放器(并且直接设置一些属性)
lazy var player : AVAudioPlayer? = {
let url = Bundle.main.url(forResource: "235319.mp3", withExtension: nil)
do {
// 创建播放器
let tempPlayer = try AVAudioPlayer(contentsOf: url!)
// 设置代理
tempPlayer.delegate = self
// 设置可以倍速播放(*一定要在准备播放之前设置)
tempPlayer.enableRate = true
// 准备播放
tempPlayer.prepareToPlay()
return tempPlayer
}catch {
print(error)
return nil
}
}()
2.播放
player?.play()
3.暂停
player?.pause()
4.停止
- 因为这个停止不会重置播放时间,也就是下次不会从头播放,所以我们需要手动重置播放时间
player?.currentTime = 0
player?.stop()
5.倍速播放(*必须设置可以进行倍速播放,并且设置可以进行倍速播放在准备播放之前)
player?.rate = 2.0
6.快进
// 快进15秒(自动做好容错适配,不需要我们自己处理负数或者大于最大播放时长数值)
player?.currentTime += 15
7.快退
// 快退15秒
player?.currentTime -= 15
8.调整声音(在页面上放一个UISlider控件,拖线)
@IBAction func volumn(_ sender: UISlider) {
player?.volume = sender.value
}
9.设置可以后台播放(先要在Xcode中设置可以进行后台播放)
- 在合适的地方调用该函数即可

func playBack() -> Void {
// 1.获取音频会话
let audioSession = AVAudioSession.sharedInstance()
do {
// 2.设置会话类型
try audioSession.setCategory(AVAudioSession.Category.playback)
// 3.激活会话
try audioSession.setActive(true, options: [])
} catch {
print(error)
}
}
10.实现代理方法
extension ViewController : AVAudioPlayerDelegate {
// 完成播放时调用
func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) {
print("播放完成")
}
}