Skip to content

Commit 84e386e

Browse files
author
Shahen Hovhannisyan
committed
fix(VideoPlayer): Fixed playing issue
When source changed in runtime - player started playing for no reason, this commit fixes that problem
1 parent b52c1d3 commit 84e386e

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

ios/RNVideoProcessing/RNVideoPlayer.swift

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)