diff --git a/KiwiPlayer.podspec b/KiwiPlayer.podspec index edcecd2..9e15004 100644 --- a/KiwiPlayer.podspec +++ b/KiwiPlayer.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'KiwiPlayer' - s.version = '0.1.2' + s.version = '0.1.3' s.summary = 'Kiwi Player allows you go forward and go back in videos easily! 💃' s.homepage = 'https://github.com/vitormesquita/KiwiPlayer' s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/KiwiPlayer.xcodeproj/xcshareddata/xcschemes/KiwiPlayer.xcscheme b/KiwiPlayer.xcodeproj/xcshareddata/xcschemes/KiwiPlayer.xcscheme new file mode 100644 index 0000000..d15dafc --- /dev/null +++ b/KiwiPlayer.xcodeproj/xcshareddata/xcschemes/KiwiPlayer.xcscheme @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/KiwiPlayer/ViewController.swift b/KiwiPlayer/ViewController.swift index 415c5a0..67e937f 100644 --- a/KiwiPlayer/ViewController.swift +++ b/KiwiPlayer/ViewController.swift @@ -42,7 +42,7 @@ class ViewController: UIViewController { } } -extension ViewController: QueuePlayerDelegate { +extension ViewController: KiwiPlayerDelegate { func playbackTimeDidChange(_ seconds: Float64) { slider.value = Float(seconds) } diff --git a/Source/KiwiPlayer+AVPlayerObserver.swift b/Source/KiwiPlayer+AVPlayerObserver.swift index ff8afa9..9faf13c 100644 --- a/Source/KiwiPlayer+AVPlayerObserver.swift +++ b/Source/KiwiPlayer+AVPlayerObserver.swift @@ -12,16 +12,17 @@ import AVFoundation // MARK: - AVPlayer Observer extension KiwiPlayer { - internal func addPlayerObserver() { - timeObserver = currentPlayer?.addPeriodicTimeObserver(forInterval: CMTimeMake(1, 2), queue: DispatchQueue.main, using: {[weak self] (time) in + internal func addPlayerObserver(_ player: AVPlayer?) { + guard let player = player else { return } + timeObserver = player.addPeriodicTimeObserver(forInterval: CMTimeMake(1, 2), queue: DispatchQueue.main, using: {[weak self] (time) in guard let strongSelf = self else { return } strongSelf.currentTime = time.seconds }) } - internal func removePlayerObserver() { - if let timeObserver = timeObserver { - currentPlayer?.removeTimeObserver(timeObserver) + internal func removePlayerObserver(_ player: AVPlayer?) { + if let timeObserver = timeObserver, let player = player { + player.removeTimeObserver(timeObserver) } } } diff --git a/Source/KiwiPlayer.swift b/Source/KiwiPlayer.swift index 11e6301..33089f1 100644 --- a/Source/KiwiPlayer.swift +++ b/Source/KiwiPlayer.swift @@ -9,7 +9,7 @@ import UIKit import AVFoundation -public protocol QueuePlayerDelegate: class { +public protocol KiwiPlayerDelegate: class { func bufferingStateDidChange(_ bufferState: BufferingState) func playbackStateDidChange(_ playerState: PlaybackState) func playbackTimeDidChange(_ seconds: Float64) @@ -37,7 +37,7 @@ open class KiwiPlayer: NSObject { public var playerLayer: AVPlayerLayer /// QueuePlayer's delegate to notify when change something - public weak var delegate: QueuePlayerDelegate? + public weak var delegate: KiwiPlayerDelegate? /// Video queue internal var itemsQueue: [AVPlayerItem] = [] @@ -75,13 +75,14 @@ open class KiwiPlayer: NSObject { } set { playerItemRemoveObservers(playerLayer.player?.currentItem) + removePlayerObserver(playerLayer.player) newValue?.volume = volume newValue?.actionAtItemEnd = .pause playerLayer.player = newValue - addPlayerObserver() + addPlayerObserver(newValue) addPlayerItemObservers(newValue?.currentItem) } } @@ -110,7 +111,6 @@ open class KiwiPlayer: NSObject { deinit { removeApplicationObservers() - removePlayerObserver() currentPlayer = nil currentItem = nil