fix: ensure view drop stop playback startup (#3875)

This commit is contained in:
Krzysztof Moch
2024-06-07 13:54:14 +02:00
parent 7133c96cac
commit ff1e24aaad
3 changed files with 26 additions and 5 deletions

View File

@@ -61,11 +61,11 @@ class NowPlayingInfoCenterManager {
return
}
if let observer = observers[players.hashValue] {
if let observer = observers[player.hashValue] {
observer.invalidate()
}
observers.removeValue(forKey: players.hashValue)
observers.removeValue(forKey: player.hashValue)
players.remove(player)
if currentPlayer == player {

View File

@@ -1241,10 +1241,19 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
// MARK: - Lifecycle
override func removeFromSuperview() {
self._player?.replaceCurrentItem(with: nil)
if let player = _player {
player.pause()
NowPlayingInfoCenterManager.shared.removePlayer(player: player)
}
_playerItem = nil
_source = nil
_chapters = nil
_drm = nil
_textTracks = nil
_selectedTextTrackCriteria = nil
_selectedAudioTrackCriteria = nil
_presentingViewController = nil
_player = nil
_resouceLoaderDelegate = nil
@@ -1252,6 +1261,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
#if USE_GOOGLE_IMA
_imaAdsManager.releaseAds()
_imaAdsManager = nil
#endif
self.removePlayerLayer()