fix: fix memory leak for iOS
This commit is contained in:
parent
8b09cb58df
commit
86a89eaed2
@ -9,6 +9,7 @@
|
|||||||
- Android: fix linter warning [#2891] (https://github.com/react-native-video/react-native-video/pull/2891)
|
- Android: fix linter warning [#2891] (https://github.com/react-native-video/react-native-video/pull/2891)
|
||||||
- Fix iOS RCTSwiftLog naming collision [#2868](https://github.com/react-native-video/react-native-video/issues/2868)
|
- Fix iOS RCTSwiftLog naming collision [#2868](https://github.com/react-native-video/react-native-video/issues/2868)
|
||||||
- Added "homepage" to package.json [#2882](https://github.com/react-native-video/react-native-video/pull/2882)
|
- Added "homepage" to package.json [#2882](https://github.com/react-native-video/react-native-video/pull/2882)
|
||||||
|
- Fix: memory leak issue on iOS [#2907](https://github.com/react-native-video/react-native-video/pull/2907)
|
||||||
|
|
||||||
### Version 6.0.0-alpha.3
|
### Version 6.0.0-alpha.3
|
||||||
|
|
||||||
|
@ -280,7 +280,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
|||||||
self._playerItem?.preferredPeakBitRate = Double(maxBitRate)
|
self._playerItem?.preferredPeakBitRate = Double(maxBitRate)
|
||||||
}
|
}
|
||||||
|
|
||||||
self._player = AVPlayer()
|
self._player = self._player ?? AVPlayer()
|
||||||
DispatchQueue.global(qos: .default).async {
|
DispatchQueue.global(qos: .default).async {
|
||||||
self._player?.replaceCurrentItem(with: playerItem)
|
self._player?.replaceCurrentItem(with: playerItem)
|
||||||
}
|
}
|
||||||
@ -704,6 +704,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
_playerViewController?.view.removeFromSuperview()
|
_playerViewController?.view.removeFromSuperview()
|
||||||
|
_playerViewController?.removeFromParent()
|
||||||
_playerViewController = nil
|
_playerViewController = nil
|
||||||
_playerObserver.playerViewController = nil
|
_playerObserver.playerViewController = nil
|
||||||
self.usePlayerLayer()
|
self.usePlayerLayer()
|
||||||
@ -836,6 +837,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
|||||||
|
|
||||||
if let _playerViewController = _playerViewController {
|
if let _playerViewController = _playerViewController {
|
||||||
_playerViewController.view.removeFromSuperview()
|
_playerViewController.view.removeFromSuperview()
|
||||||
|
_playerViewController.removeFromParent()
|
||||||
_playerViewController.rctDelegate = nil
|
_playerViewController.rctDelegate = nil
|
||||||
_playerViewController.player = nil
|
_playerViewController.player = nil
|
||||||
self._playerViewController = nil
|
self._playerViewController = nil
|
||||||
|
Loading…
Reference in New Issue
Block a user