設定 Background Mode 在背景播放音樂
開發音樂播放的 App 時,我們時常需要讓音樂在背景也能繼續播放,這樣的功能是如何實現的呢 ? 只要調整 Background Mode & 設定 AVAudioSession 即可實現。
點選 Capability 新增背景播音樂的能力
從 Project navigator 點選專案檔,點選 TARGETS 下的 App 後,切換到 Signing & Capabilities 頁面,點選 + Capability。
選擇 Background Modes
Capabilities 視窗裡有很多有趣的功能,不過此刻我們只想加入 Background Modes。
Signing & Capabilities 頁面多了 Background Modes。
勾選 Background Modes 的 Audio, AirPlay, and Picture in Picture
App 在背景可以做很多事,比方偷偷追蹤使用者的位置,不過我們只想享受一個人孤單聽音樂的滋味,所以只要勾選 Audio, AirPlay, and Picture in Picture。
將 AVAudioSession 設為 playback
為了讓 App 能在背景繼續播放,在螢幕鎖定 & silent mode 都能繼續播放音樂陪著我們,我們必須在 AppDelegate import AVFoundation
,然後修改 function application(_:didFinishLaunchingWithOptions:),在 App 一啟動時將 AVAudioSession 設為 playback 的類別。(ps: 記得要 import AVFoundation)
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
try? AVAudioSession.sharedInstance().setCategory(.playback)
return true
}
現在我們終於可以在背景播音樂了 ,比方利用以下連結介紹的 AVPlayerLooper 在背景重覆播放音樂。