音乐播放

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("播放完成")
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iOS开发疯狂者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值