为有牺牲多壮志,敢教日月换新天。

[Xcode 实际操作]六、媒体与动画-(16)实现音乐的背景播放

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

目录:[Swift]Xcode实际操作

本文将演示音乐的背景播放功能

打开项目信息配置文件【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 }

 

posted @ 2018-11-29 21:14  为敢技术  阅读(220)  评论(0编辑  收藏  举报