         didSet {
             if state != oldValue {
               weak var _self = self
-              delegate?.bmPlayer(player: _self, playerStateDidChange: state)
+              delegate?.bmPlayer(player: _self!, playerStateDidChange: state)
             }
         }
     }

                        let duration        = item.duration
                        let totalDuration   = CMTimeGetSeconds(duration)
                        weak var _self = self
                        delegate?.bmPlayer(player: _self, loadedTimeDidChange: timeInterVarl, totalDuration: totalDuration)
                    }
                    
                case "playbackBufferEmpty":

                let currentTime = CMTimeGetSeconds(self.player!.currentTime())
                let totalTime   = TimeInterval(playerItem.duration.value) / TimeInterval(playerItem.duration.timescale)
                weak var _self = self
                delegate?.bmPlayer(player: _self!, playTimeDidChange: currentTime, totalTime: totalTime)
            }
            updateStatus(inclodeLoading: true)
        }
