 	}
 
 	fileprivate func initPlayer() {
-		if let _player = self.player {
-			_player.addObserver(self, forKeyPath: Keys.Status, options: NSKeyValueObservingOptions.new, context: nil)
-			self.addedPlayerStateObserver = true
+		if #available(iOS 10.0, *) {
+			self.player?.automaticallyWaitsToMinimizeStalling = self.bufferStrategy == .minimizeStalling
 		}
 
 		if (self.player?.responds(to: #selector(setter: AVAudioMixing.volume)) == true) {

	fileprivate var playbackPositionChangeTimer				: Timer?
	fileprivate var stopPlaybackTimeChangeTimer				= false

	fileprivate var addedPlayerStateObserver				= false

	// MARK: - Initializaiton

	fileprivate func setupAudioSession() {

        self.forward()
    }

	// MARK: - Playback time change callback

	open func addPlaybackTimeChangeCallback(_ sender: AnyObject, callback: @escaping (_ track: AudioTrack) -> Void) {
