As explained at https://developer.apple.com/documentation/combine/performing-key-value-observing-with-combine you can create a combine
listener
statusObserver = player.publisher(for: \.timeControlStatus)
.receive(on: DispatchQueue.main)
.sink { newStatus in
isPlaying = newStatus == .playing
}
where isPlaying: Bool
and statusObserver: AnyCancellable?
are private @State
properties on my view.