@@ -56,15 +56,19 @@ public final class Player: ObservableObject, Equatable {
56
56
@Published var storedItems : Deque < PlayerItem >
57
57
@Published var _playbackSpeed : PlaybackSpeed = . indefinite
58
58
59
- @Published var isActive = false {
60
- didSet {
61
- if isActive {
59
+ var isActive : Bool {
60
+ get {
61
+ isActivePublisher. value
62
+ }
63
+ set {
64
+ if newValue {
62
65
nowPlayingSession. becomeActiveIfPossible ( )
63
66
queuePlayer. allowsExternalPlayback = configuration. allowsExternalPlayback
64
67
}
65
68
else {
66
69
queuePlayer. allowsExternalPlayback = false
67
70
}
71
+ isActivePublisher. send ( newValue)
68
72
}
69
73
}
70
74
@@ -200,10 +204,13 @@ public final class Player: ObservableObject, Equatable {
200
204
var commandRegistrations : [ any RemoteCommandRegistrable ] = [ ]
201
205
202
206
// swiftlint:disable:next private_subject
203
- var desiredPlaybackSpeedPublisher = PassthroughSubject < Float , Never > ( )
207
+ let isActivePublisher = CurrentValueSubject < Bool , Never > ( false )
208
+
209
+ // swiftlint:disable:next private_subject
210
+ let desiredPlaybackSpeedPublisher = PassthroughSubject < Float , Never > ( )
204
211
205
212
// swiftlint:disable:next private_subject
206
- var textStyleRulesPublisher = CurrentValueSubject < [ AVTextStyleRule ] , Never > ( [ ] )
213
+ let textStyleRulesPublisher = CurrentValueSubject < [ AVTextStyleRule ] , Never > ( [ ] )
207
214
208
215
/// Creates a player with a given item queue.
209
216
///
@@ -463,13 +470,12 @@ private extension Player {
463
470
}
464
471
465
472
func configureControlCenterRemoteCommandUpdatePublisher( ) {
466
- Publishers . CombineLatest3 (
473
+ Publishers . CombineLatest (
467
474
queuePublisher,
468
- propertiesPublisher,
469
- $isActive
475
+ propertiesPublisher
470
476
)
471
477
. receiveOnMainThread ( )
472
- . sink { [ weak self] queue, properties, _ in
478
+ . sink { [ weak self] queue, properties in
473
479
guard let self else { return }
474
480
let areSkipsEnabled = queue. elements. count <= 1 && properties. streamType != . live
475
481
let hasError = queue. error != nil
0 commit comments