要使應(yīng)用可以在后臺(tái)播放音頻,可以參考[Configuring Audio Settings for iOS and tvOS]中描述的為應(yīng)用配置能力(capabilities)和音頻會(huì)話(audio session)。
如果是播放只有音頻的資源,如 MP3 或 M4A 文件,做好上面的配置就可以在后臺(tái)播放音頻了。如果你是要在后臺(tái)播放一個(gè)視頻的音頻部分,那么還需要做一點(diǎn)額外的工作。當(dāng)應(yīng)用退到后臺(tái)時(shí),如果播放器(AVPlayer)正在播放一個(gè)視頻,播放會(huì)自動(dòng)暫停。如果想讓應(yīng)用退到后臺(tái)后繼續(xù)播放音頻,可以在應(yīng)用進(jìn)到后臺(tái)時(shí)斷開 AVPlayer 對(duì)象和 界面部分的連接,應(yīng)用會(huì)到前臺(tái)后在重新建立這個(gè)連接:
func applicationDidEnterBackground(_ application: UIApplication) {
// 斷開 AVPlayer 與界面
// 通過 AVPlayerViewController 展示圖像的情況
playerViewController.player = nil
// 通過 AVPlayerLayer 展示圖像的情況
playerLayer.player = nil
}
func applicationWillEnterForeground(_ application: UIApplication) {
// 應(yīng)用回到前臺(tái)后重新建立 AVPlayer 與界面部分的連接
// 通過 AVPlayerViewController 展示圖像的情況
playerViewController.player = player
// 通過 AVPlayerLayer 展示圖像的情況
playerLayer.player = player
}