目录:[Swift]Xcode实际操做html
本文将演示音乐的背景播放功能swift
打开项目信息配置文件【info.plist】。网络
须要在配置文件中进行一些操做,使程序支持音乐的背景播放。session
点击鼠标右键,弹出右键菜单。框架
在弹出的菜单中选择【Add Row】添加一行命令。ide
在键名输入框内,输入须要设置的键名:【Required background modes】oop
点击右向箭头弹出隐藏的内容。post
在右侧的值输入框内进行点击,用来设置键值。ui
点击选择键对应的值:【App plays audio or streams audio/video AirPlay】spa
使程序支持:后台播放本地音频、网络流音频、以及使用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 }