@@ -51,17 +51,6 @@ class RNVideoPlayer: RCTView {
5151 fatalError ( " init(coder:) has not been implemented " )
5252 }
5353
54- deinit {
55- if self . playerCurrentTimeObserver != nil {
56- self . player. removeTimeObserver ( self . playerCurrentTimeObserver)
57- self . player. pause ( )
58- self . gpuMovie. cancelProcessing ( )
59- self . player = nil
60- self . gpuMovie = nil
61- print ( " CHANGED: Removing Oberver, that can be a cause of memory leak " )
62- }
63- }
64-
6554 // props
6655 var playerHeight : NSNumber ? {
6756 set ( val) {
@@ -264,6 +253,7 @@ class RNVideoPlayer: RCTView {
264253 print ( " CHANGED playerEndTime \( self . _playerEndTime) " )
265254 }
266255
256+
267257 gpuMovie = GPUImageMovie ( playerItem: playerItem)
268258 // gpuMovie.runBenchmark = true
269259 gpuMovie. playAtActualSpeed = true
@@ -275,11 +265,26 @@ class RNVideoPlayer: RCTView {
275265
276266 gpuMovie. addTarget ( self . filterView)
277267 self . addSubview ( filterView)
268+ print ( " SUBS: \( self . subviews) " )
278269 gpuMovie. playAtActualSpeed = true
279270
280271 self . createPlayerObservers ( )
281272 }
282273
274+ override func willMove( toSuperview newSuperview: UIView ? ) {
275+ super. willMove ( toSuperview: newSuperview)
276+ if newSuperview == nil {
277+
278+ if self . playerCurrentTimeObserver != nil {
279+ self . player. removeTimeObserver ( self . playerCurrentTimeObserver)
280+ }
281+ self . player. pause ( )
282+ self . gpuMovie. cancelProcessing ( )
283+ self . player = nil
284+ self . gpuMovie = nil
285+ print ( " CHANGED: Removing Oberver, that can be a cause of memory leak " )
286+ }
287+ }
283288 /* @TODO: create Preview images before the next Release
284289 func createPhantomGPUView() {
285290 phantomGpuMovie = GPUImageMovie(playerItem: self.playerItem)
0 commit comments