@@ -96,14 +96,14 @@ extension LoopingPlayerProtocol {
96
96
player? . pause ( )
97
97
}
98
98
99
- removeStatusObserver ( )
99
+ removeItemObservers ( )
100
100
unloop ( )
101
101
removeAllFilters ( )
102
102
103
103
// Replace the current item with a new item created from the asset
104
104
let newItem = AVPlayerItem ( asset: asset)
105
105
106
- addStatusObserver ( for: newItem)
106
+ addItemObservers ( for: newItem)
107
107
108
108
player? . replaceCurrentItem ( with: newItem)
109
109
@@ -171,20 +171,23 @@ extension LoopingPlayerProtocol {
171
171
/// - item: The player item to observe.
172
172
/// - player: The player to observe.
173
173
func setupObservers( for item: AVPlayerItem , player: AVQueuePlayer ) {
174
- addStatusObserver ( for: item)
174
+ addItemObservers ( for: item)
175
175
errorObserver = player. observe ( \. error, options: [ . new] ) { [ weak self] player, _ in
176
176
self ? . handlePlayerError ( player)
177
177
}
178
178
}
179
179
180
- func removeStatusObserver ( ) {
180
+ func removeItemObservers ( ) {
181
181
statusObserver? . invalidate ( )
182
182
statusObserver = nil
183
+
184
+ NotificationCenter . default. removeObserver ( self , name: . AVPlayerItemDidPlayToEndTime, object: nil )
183
185
}
184
186
185
- func addStatusObserver ( for item: AVPlayerItem ) {
186
- statusObserver = item. observe ( \. status, options: [ . new] ) { [ weak self] item, _ in
187
+ func addItemObservers ( for item: AVPlayerItem ) {
188
+ statusObserver = item. observe ( \. status, options: [ . new, . old ] ) { [ weak self] item, _ in
187
189
self ? . handlePlayerItemStatusChange ( item)
190
+ print ( item)
188
191
}
189
192
}
190
193
0 commit comments