@@ -33,6 +33,7 @@ class RNVideoPlayer: RCTView {
3333 var _playerEndTime : CGFloat = 0
3434 var _replay : Bool = false
3535 var _rotate : Bool = false
36+ var isInitialized = false
3637 var _resizeMode = AVLayerVideoGravityResizeAspect
3738 var onChange : RCTBubblingEventBlock ?
3839
@@ -338,8 +339,10 @@ class RNVideoPlayer: RCTView {
338339
339340 let movieURL = NSURL ( string: _moviePathSource as String )
340341
341- player = AVPlayer ( )
342- player. volume = Float ( self . playerVolume)
342+ if self . player == nil {
343+ player = AVPlayer ( )
344+ player. volume = Float ( self . playerVolume)
345+ }
343346 playerItem = AVPlayerItem ( url: movieURL as! URL )
344347 player. replaceCurrentItem ( with: playerItem)
345348
@@ -357,16 +360,22 @@ class RNVideoPlayer: RCTView {
357360 self . _playerEndTime = CGFloat ( CMTimeGetSeconds ( ( player. currentItem? . asset. duration) !) )
358361 print ( " CHANGED playerEndTime \( self . _playerEndTime) " )
359362
363+ if self . gpuMovie != nil {
364+ gpuMovie. endProcessing ( )
365+ }
360366 gpuMovie = GPUImageMovie ( playerItem: playerItem)
361367 // gpuMovie.runBenchmark = true
362368 gpuMovie. playAtActualSpeed = true
363369 gpuMovie. startProcessing ( )
364370
365371 gpuMovie. addTarget ( self . filterView)
366- self . addSubview ( filterView)
372+ if !self . isInitialized {
373+ self . addSubview ( filterView)
374+ self . createPlayerObservers ( )
375+ }
367376 gpuMovie. playAtActualSpeed = true
368377
369- self . createPlayerObservers ( )
378+ self . isInitialized = true
370379 }
371380
372381 override func willMove( toSuperview newSuperview: UIView ? ) {
0 commit comments