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: "MarryYou", ofType: "mp3")//定义一个字符串常量,描述声音文件的路径 let soundUrl = URL(fileURLWithPath: path!)//将字符串路径转换成网址路径 try audioPlayer = AVAudioPlayer(contentsOf: soundUrl)//对音频播放对象进行初始化,并加载指定的音频文件 audioPlayer.prepareToPlay()//为音频播放做好准备 audioPlayer.volume = 1.0//设置音频播放对象的音量大小 audioPlayer.numberOfLoops = -1//设置音频播放次数,-1为无线循环播放 audioPlayer.play() } catch { print(error) } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }