MPMusicPlayerController.applicationMusicPlayerで現在指定されている曲が変更された時に受け取る通知です。前回のコードの続き。
import Foundation
//...中略...
var body: some View {
VStack(alignment: .center) {
//...中略...
}.padding()
.onReceive(NotificationCenter.default.publisher(for: Notification.Name("MPMusicPlayerControllerNowPlayingItemDidChangeNotification")), perform: { _ in
if let musicItem = musicPlayer.nowPlayingItem {
// 曲名を更新したりアートワークを変更したり、などなど
}
})
}
//...中略...
一番外側にあるUIコンポーネントに .onReceiveでNotificationCenter (Foundationで定義)から “MPMusicPlayerControllerNowPlayingItemDidChangeNotification” 通知(長い)を受け取る、と。一番外側でなくてもいいのかもだけど未確認。
通知が定義されている公式のページは以下。
NSNotificationName (Apple公式)