オーディオ再生中にバックグラウンドに移行しても再生を続けるには?
Targetsから
Capabilities > Background Modes をONにして、
Audio, AirPlay and Picture in Picture をチェックします

(この設定によって、Info.plistに”Required Background Modes”キーが書き加えられます)
この設定をした上で、ソースコード上でAVAudioSessionのカテゴリを設定します。
AVAudioSessionのカテゴリとは、消音スイッチが入っているときに音楽再生するか?や、録音可能か?などの設定を定めるものです。
(AVAudioSessionプログラミングガイド(日本語・PDF))
バックグラウンド再生の場合には、 AVAudioSessionCategoryPlaybackにします。
/// バックグラウンドでも再生できるカテゴリに設定する
let session = AVAudioSession.sharedInstance()
do {
try session.setCategory(AVAudioSessionCategoryPlayback)
} catch {
// エラー処理
fatalError("カテゴリ設定失敗")
}
// sessionのアクティブ化
do {
try session.setActive(true)
} catch {
// audio session有効化失敗時の処理
// (ここではエラーとして停止している)
fatalError("session有効化失敗")
}これで、音楽再生中にバックグラウンドに移行しても再生は続きます。
ただ、これで音楽を流し続けることはできるのですが、イヤホンやコントロールセンターからの操作を受け付けません。
そういった操作(リモートコントロールイベント)を受け付ける手順はこちらの記事をごらんください。
[iOS][Swift]リモートコントロールイベントに対応する | nackpan Blog
参考
Technical Q&A QA1668: Playing media while in the background using AV Foundation on iOS
「[iOS][Swift]バックグラウンドに移行してもオーディオ再生を続ける」への1件のフィードバック