         }
     }
     var playerTimeObserver: AnyObject?
-    var currentTimePercent: CGFloat? {
-        didSet { updateCurrentTimeBar() }
+    var currentTime: CMTime? {
+        didSet { updateCurrentTime() }
     }
     private lazy var currentTimeBar: NSView = NSView(frame: NSZeroRect) ※ { v in
         v.wantsLayer = true
         v.layer?.backgroundColor = NSColor.redColor().CGColor
         self.addSubview(v)
     }
+    private lazy var currentTimeLabel: NSTextField = NSTextField(frame: NSZeroRect) ※ { tf in
+        tf.bezeled = false
+        tf.editable = false
+        tf.drawsBackground = true
+        tf.font = NSFont.monospacedDigitSystemFontOfSize(12, weight: NSFontWeightRegular)
+        tf.textColor = NSColor.whiteColor()
+        tf.backgroundColor = NSColor.blackColor()
+    }
+
     var imageGenerator: AVAssetImageGenerator?
     var numberOfPages: UInt = 0 {
         didSet { setNeedsDisplayInRect(bounds) }

        
        super.init(frame: NSZeroRect)

        setContentCompressionResistancePriority(NSLayoutPriorityDefaultHigh, forOrientation: .Vertical)
        setContentHuggingPriority(NSLayoutPriorityDefaultHigh, forOrientation: .Vertical)

        observePlayer()
    }

    required init?(coder: NSCoder) {

    }

    override var frame: NSRect {
        didSet { updateCurrentTime() }
    }

    private func updateCurrentTime() {
        if  let item = player?.currentItem,
            let time = currentTime {
                let duration = item.duration
                let p = CGFloat(time.convertScale(duration.timescale, method: CMTimeRoundingMethod.Default).value)
                    / CGFloat(duration.value)
                currentTimeBar.hidden = false
                currentTimeBar.frame = NSRect(x: p * bounds.width, y: 0, width: 1, height: bounds.height)
                currentTimeLabel.stringValue = time.stringInmmssSS
        } else {
            currentTimeBar.hidden = true
            currentTimeLabel.stringValue = "--:--.--"
        }
    }

