目錄:[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 }