         }
     }
 
-    var fillMode: String {
-        get {
-            return self.playerLayer.videoGravity.rawValue
+    var fillMode: PlayerFillMode {
+        get {
+            return self.playerLayer.videoGravity
         }
         set {
-            self.playerLayer.videoGravity = AVLayerVideoGravity(rawValue: newValue)
+            self.playerLayer.videoGravity = newValue
         }
     }
     

        self._asset?.loadValuesAsynchronously(forKeys: keys, completionHandler: { () -> Void in
            for key in keys {
                var error: NSError? = nil
                let status = self._asset?.statusOfValue(forKey: key, error:&error)
                if status == .failed {
                    self.playerDelegate?.player(self, didFailWithError: error)
                    self.playbackState = .failed

/// - resize: Stretch to fill.
/// - resizeAspectFill: Preserve aspect ratio, filling bounds.
/// - resizeAspectFit: Preserve aspect ratio, fill within bounds.
public typealias PlayerFillMode = AVLayerVideoGravity

/// Asset playback states.
public enum PlaybackState: Int, CustomStringConvertible {
