{
    "additionalProperties": false,
    "description": "Context Schema for a media player event",
    "properties": {
        "autoPlay": {
            "description": "If playback should automatically begin as soon as enough media is available to do so without interruption",
            "type": "boolean"
        },
        "buffered": {
            "description": "An array of time ranges that have been buffered",
            "items": {
                "additionalProperties": false,
                "description": "A time range object",
                "properties": {
                    "end": {
                        "description": "The end of the time range",
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "number"
                    },
                    "start": {
                        "description": "The beginning of the time range",
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "number"
                    }
                },
                "type": "object"
            },
            "type": "array"
        },
        "controls": {
            "description": "If the user agent should provide it's own set of controls",
            "type": "boolean"
        },
        "crossOrigin": {
            "description": "CORS settings value of the media player",
            "maxLength": 255,
            "type": [
                "string",
                "null"
            ]
        },
        "currentSrc": {
            "_format": "uri",
            "description": "The absolute URL of the media resource",
            "maxLength": 65535,
            "type": "string"
        },
        "defaultMuted": {
            "description": "If audio is muted by default",
            "type": "boolean"
        },
        "defaultPlaybackRate": {
            "description": "The default media playback rate of the player",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "number"
        },
        "disableRemotePlayback": {
            "description": "If the media element is allowed to have a remote playback UI",
            "type": [
                "boolean",
                "null"
            ]
        },
        "error": {
            "description": "An object of the latest error to occur, or null if no errors",
            "type": [
                "object",
                "null"
            ]
        },
        "fileExtension": {
            "description": "The media file format",
            "maxLength": 255,
            "minLength": 1,
            "type": [
                "string",
                "null"
            ]
        },
        "fullscreen": {
            "description": "If the video element is fullscreen",
            "type": [
                "boolean",
                "null"
            ]
        },
        "htmlId": {
            "description": "The HTML id of the element",
            "maxLength": 65535,
            "type": "string"
        },
        "mediaType": {
            "description": "If the media is a video element, or audio",
            "enum": [
                "AUDIO",
                "VIDEO"
            ],
            "maxLength": 5,
            "type": "string"
        },
        "networkState": {
            "description": "The current state of the fetching of media over the network",
            "enum": [
                "NETWORK_EMPTY",
                "NETWORK_IDLE",
                "NETWORK_LOADING",
                "NETWORK_NO_SOURCE"
            ],
            "type": "string"
        },
        "pictureInPicture": {
            "description": "If the video element is showing Picture-In-Picture",
            "type": [
                "boolean",
                "null"
            ]
        },
        "played": {
            "description": "An array of time ranges played",
            "items": {
                "additionalProperties": false,
                "description": "A time range",
                "properties": {
                    "end": {
                        "description": "The end of the time range",
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "number"
                    },
                    "start": {
                        "description": "The beginning of the time range",
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "number"
                    }
                },
                "type": "object"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "preload": {
            "description": "The 'preload' HTML attribute of the media",
            "maxLength": 65535,
            "type": "string"
        },
        "readyState": {
            "description": "The readiness of the media",
            "enum": [
                "HAVE_NOTHING",
                "HAVE_METADATA",
                "HAVE_CURRENT_DATA",
                "HAVE_FUTURE_DATA",
                "HAVE_ENOUGH_DATA"
            ],
            "type": "string"
        },
        "seekable": {
            "description": "Seekable time range(s)",
            "items": {
                "additionalProperties": false,
                "description": "A time range",
                "properties": {
                    "end": {
                        "description": "The end of the time range",
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "number"
                    },
                    "start": {
                        "description": "The beginning of the time range",
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "number"
                    }
                },
                "type": "object"
            },
            "type": "array"
        },
        "seeking": {
            "description": "If the media is in the process of seeking to a new position",
            "type": "boolean"
        },
        "src": {
            "_format": "uri",
            "description": "The 'src' HTML attribute of the media element",
            "maxLength": 65535,
            "type": "string"
        },
        "textTracks": {
            "description": "An array of TextTrack objects on the media element",
            "items": {
                "description": "A Text Track object",
                "properties": {
                    "kind": {
                        "description": "The kind of text track this object represents",
                        "enum": [
                            "subtitles",
                            "captions",
                            "descriptions",
                            "chapters",
                            "metadata"
                        ],
                        "type": "string"
                    },
                    "label": {
                        "description": "The given label for the text track",
                        "maxLength": 65535,
                        "type": "string"
                    },
                    "language": {
                        "description": "The locale of the text track, matching BCP-47 (https://www.rfc-editor.org/info/bcp47)",
                        "maxLength": 35,
                        "type": "string"
                    },
                    "mode": {
                        "description": "The mode the text track is in",
                        "enum": [
                            "disabled",
                            "hidden",
                            "showing"
                        ],
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "type": [
                "array",
                "null"
            ]
        }
    },
    "required": [
        "autoPlay",
        "buffered",
        "controls",
        "currentSrc",
        "defaultMuted",
        "defaultPlaybackRate",
        "error",
        "htmlId",
        "mediaType",
        "networkState",
        "preload",
        "readyState",
        "seekable",
        "seeking"
    ],
    "self": {
        "format": "jsonschema",
        "name": "media_element",
        "vendor": "org.whatwg",
        "version": "1-0-0"
    },
    "type": "object"
}