         if keyPath == "currentItem.playbackLikelyToKeepUp" {
             if shouldResumePlayAfterBufferEvent() {
                 play()
+            } else if !player.currentItem!.playbackLikelyToKeepUp {
+                trigger(.Buffering)
             }
         } else if keyPath == "currentItem.playbackBufferEmpty" {
             trigger(.Buffering)

    public override func play() {
        player.play()
        currentState = .Playing
        trigger(.Play)
    }
    
    public override func pause() {

    public override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?,
        change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
            switch context {
            case &kvoPlayerContext:
                handleRateChangedEvent()
            case &kvoStatusDidChangeContext:
                handleStatusChangedEvent()
            case &kvoTimeRangesContext:
