         if state != .playedToTheEnd {
             if let playerItem = playerItem {
                 weak var _self = self
-                delegate?.bmPlayer(player: _self,
+                delegate?.bmPlayer(player: _self!,
                                    playTimeDidChange: CMTimeGetSeconds(playerItem.duration),
                                    totalTime: CMTimeGetSeconds(playerItem.duration))
             }

                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)
        }

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