本文将演示音乐的背景播放功能
打开项目信息配置文件【info.plist】。
需要在配置文件中进行一些操作,使程序支持音乐的背景播放。
点击鼠标右键,弹出右键菜单。
在弹出的菜单中选择【Add Row】添加一行命令。
在键名输入框内,输入需要设置的键名:【Required background modes】
点击右向箭头弹出隐藏的内容。
在右侧的值输入框内进行点击,用来设置键值。
点击选择键对应的值:【App plays audio or streams audio/video AirPlay】
使程序支持:后台播放本地音频、网络流音频、以及使用AirPlay播放视频。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
1 import UIKit 2 //首先引入需要使用的流媒体基础框架, 3 //它能收集各种多媒体数据。 4 //这些数据可以来自不同的输入设备, 5 //比如摄像机、录音机等 6 import AVFoundation 7 8 class ViewController: UIViewController { 9 10 //初始化音频播放对象,并将音频播放对象,作为视图控制器类的属性 11 var audioPlayer:AVAudioPlayer = AVAudioPlayer() 12 13 override func viewDidLoad() { 14 super.viewDidLoad() 15 // Do any additional setup after loading the view, typically from a nib. 16 17 //获得音频会话对象,该对象属于单例模式, 18 //也就是不用开发者而自行实例化。 19 //这个类在各种音频环境中,起着非常重要的作用 20 let session = AVAudioSession.sharedInstance() 21 22 //在音频播放前,首先创建一个异常捕捉语句 23 do{ 24 //启动音频会话管理,此时会阻断后台音乐的播放 25 try session.setActive(true) 26 //Swift内置支持检查API可用性,这可确保不会意外使用在给定部署目标上不可用的API。 27 if #available(iOS 10.0, *) { 28 //设置音频播放的类别,表示该应用仅支持音频的播放 29 try session.setCategory(.playback, mode: .default) 30 } else { 31 // Fallback on earlier versions 32 } 33 //设置应用程序支持接收远程控制事件 34 UIApplication.shared.beginReceivingRemoteControlEvents() 35 36 //定义一个字符串常量,描述声音文件的路径 37 let path = Bundle.main.path(forResource: "music", ofType: "mp3") 38 //将字符串路径,转换为网址路径 39 let soundUrl = URL(fileURLWithPath: path!) 40 41 //对音频播放对象进行初始化,并加载指定的音频文件 42 try audioPlayer = AVAudioPlayer(contentsOf: soundUrl) 43 //为音频播放做好准备 44 audioPlayer.prepareToPlay() 45 //设置音频播放对象的音量大小 46 audioPlayer.volume = 1.0 47 //设置音频播放的次数,-1为无限循环播放 48 audioPlayer.numberOfLoops = -1 49 //开始音频素材的播放 50 audioPlayer.play() 51 52 } catch{ 53 print(error) 54 } 55 } 56 57 override func didReceiveMemoryWarning() { 58 super.didReceiveMemoryWarning() 59 // Dispose of any resources that can be recreated. 60 } 61 }