swift笔记--实现音乐的背景播放功能

//在与该视图控制器文件在同一文件夹下的info文件空白处点击右键,选择 add Row
//键名设为Required background modes,点击左侧下拉箭头,在右侧输入键值App plays audio or streams audio/video using AirPlay
//这样程序就可以支持后台播放本地音频,网络流音频,以及使用AirPlay播放视频
import UIKit
//首先导入音频框架
import AVFoundation

class ViewController: UIViewController {

//    初始化音频播放对像,做为视图控制器类的属性
    var audioPlayer:AVAudioPlayer = AVAudioPlayer()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
//        获得音频会话对像,该对像属于单例模式,也就是说不用开发者而自行实例化,这个类在各种音频环境中起着非常重要的作用
        let session = AVAudioSession.sharedInstance()
//        创建一个异常捕捉语句
        do{
//            启动音频会话的管理,此时会阻断后台音乐的播放
            try session.setActive(true)
//            设置音频操作类别,标示该应用仅支持音频的播放
            try session.setCategory(AVAudioSessionCategoryPlayback)
//            设置应用程序支持接受远程控制事件
            UIApplication.shared.beginReceivingRemoteControlEvents()
            
//            定义一个字符常量,描述声音文件的路经
            let path = Bundle.main.path(forResource: "test", ofType: "mp3")
//            将字符串路径,转换为网址路径
            let soudUrl = URL(fileURLWithPath: path!)
//            对音频播放对象进行初始化,并加载指定的音频文件
            try audioPlayer = AVAudioPlayer(contentsOf: soudUrl)
            audioPlayer.prepareToPlay()
//            设置音频播放对象的音量大小/
            audioPlayer.volume = 1.0
//            设置音频的播放次数,-1为无限循环
            audioPlayer.numberOfLoops = -1
//            开始播放
            audioPlayer.play()
        } catch{
            print(error)
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

猜你喜欢

转载自blog.csdn.net/weixin_41735943/article/details/81200558