import VideoElement from "@arcgis/core/layers/support/VideoElement.js";const VideoElement = await $arcgis.import("@arcgis/core/layers/support/VideoElement.js");- Inheritance:
- VideoElement→
MediaElementBase→ Accessor
- Since
- ArcGIS Maps SDK for JavaScript 4.24
Represents a video element referenced in the MediaLayer's MediaLayer.source. MediaLayer can display videos that are supported by web browsers. Refer to the common codecs document for supported video types.
Coordinates of the image and video elements can be specified in any spatial reference and are projected to the view's spatial reference. The content is stretched linearly between the coordinates, therefore it's recommended for the image or video to match the view's spatial reference to align correctly, especially for content covering large areas like the entire earth.
// create a video element by setting video param to point to the video file url// set the geographic location of the video file on the map using an extentconst element = new VideoElement({ video: "https://arcgis.github.io/arcgis-samples-javascript/sample-data/media-layer/videos/hurricanes_aerosol-aug.mp4", georeference: new ExtentAndRotationGeoreference({ extent: new Extent({ xmin: -150, ymin: 1, xmax: 20, ymax: 80, spatialReference: { wkid: 4326 } }) })});Constructors
Constructor
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| properties | | |
Properties
| Property | Type | Class |
|---|---|---|
content readonly | | |
declaredClass readonly inherited | ||
georeference inherited | ||
loadError readonly inherited | ||
loadStatus readonly inherited | "not-loaded" | "loading" | "failed" | "loaded" | |
loadWarnings readonly inherited | any[] | |
opacity inherited | ||
type readonly | "video" | |
| |
content
- Type
- HTMLVideoElement | null | undefined
The video content referenced in the video element instance. The content matches the video referenced in the video parameter.
georeference
- Type
- Georeference | null | undefined
The geographic location of the image or video element to be placed on the map. The location can be set by either specifying extent and rotation of the element, the corner points of the bounding box, or by defining control points.
Examples
// create a new ExtentAndRotationGeoreferenceconst geoReference = new ExtentAndRotationGeoreference({ extent: new Extent({ spatialReference: { wkid: 102100 }, xmin: -10047456.27662979, ymin: 3486722.2723874687, xmax: -10006982.870152846, ymax: 3514468.91365495 })});const imageElement = new ImageElement({ image: "https://arcgis.github.io/arcgis-samples-javascript/sample-data/media-layer/new-orleans/neworleans1891.png", georeference: geoReference});// create a canvas image element by setting its corner points of the bounding boxconst canvasElement = new ImageElement({ image: canvas, georeference: new CornersGeoreference({ bottomRight: new Point({ x: -121.369, y: 45.061 }), bottomLeft: new Point({ x: -122.363, y: 45.061 }), topRight: new Point({ x: -121.369, y: 45.678 }), topLeft: new Point({ x: -122.363, y: 45.678 }) })});// georeference an ImageElement, using ControlPointsGeoreference in the// North American Datum 1927 spatial referenceconst spatialReference = new SpatialReference({ wkid: 4267 });const swCorner = { sourcePoint: { x: 80, y: 1732 }, mapPoint: new Point({ x: -107.875, y: 37.875, spatialReference })};
const nwCorner = { sourcePoint: { x: 75, y: 102 }, mapPoint: new Point({ x: -107.875, y: 38, spatialReference })};
const neCorner = { sourcePoint: { x: 1353, y: 99 }, mapPoint: new Point({ x: -107.75, y: 38, spatialReference })};
const seCorner = { sourcePoint: { x: 1361, y: 1721 }, mapPoint: new Point({ x: -107.75, y: 37.875, spatialReference })};
const controlPoints = [swCorner, nwCorner, neCorner, seCorner];
const georeference = new ControlPointsGeoreference({ controlPoints, width: 1991, height: 2500 });
const imageElement = new ImageElement({ image: "https://jsapi.maps.arcgis.com/sharing/rest/content/items/1a3df04e7d734535a3a6a09dfec5a6b2/data", georeference}); loadError
The Error object returned if an error occurred while loading.
loadStatus
- Type
- "not-loaded" | "loading" | "failed" | "loaded"
Represents the status of a load() operation.
| Value | Description |
|---|---|
| not-loaded | The object's resources have not loaded. |
| loading | The object's resources are currently loading. |
| loaded | The object's resources have loaded without errors. |
| failed | The object's resources failed to load. See loadError for more details. |
- Default value
- "not-loaded"
loadWarnings
- Type
- any[]
A list of warnings which occurred while loading.
opacity
- Type
- number
The opacity of the element. This value can range between 1 and 0, where 0 is 100 percent transparent and 1 is completely opaque.
- Default value
- 1
video
- Type
- VideoSource
The video element to be added to the media layer's source. The video element can be URL string pointing the video for example.
Example
// create a video element by setting video param to point to the video file url// set the geographic location of the video file on the map using an extentconst element = new VideoElement({ video: "https://arcgis.github.io/arcgis-samples-javascript/sample-data/media-layer/videos/hurricanes_aerosol-aug.mp4", georeference: new ExtentAndRotationGeoreference({ extent: new Extent({ xmin: -150, ymin: 1, xmax: 20, ymax: 80, spatialReference: { wkid: 4326 } }) })});
// add the video element to the media layerconst layer = new MediaLayer({ source: [element], title: "2017 Hurricanes and Aerosols Simulation", copyright: "NASA's Goddard Space Flight Center"});Methods
| Method | Signature | Class |
|---|---|---|
cancelLoad inherited | cancelLoad(): this | |
isFulfilled inherited | isFulfilled(): boolean | |
isRejected inherited | isRejected(): boolean | |
isResolved inherited | isResolved(): boolean | |
load inherited | load(options?: AbortOptions | null | undefined): Promise<this> | |
when inherited | when<TResult1 = this, TResult2 = never>(onFulfilled?: OnFulfilledCallback<this, TResult1> | null | undefined, onRejected?: OnRejectedCallback<TResult2> | null | undefined): Promise<TResult1 | TResult2> |
cancelLoad
- Signature
-
cancelLoad (): this
Cancels a load() operation if it is already in progress.
- Returns
- this
isFulfilled
- Signature
-
isFulfilled (): boolean
isFulfilled() may be used to verify if creating an instance of the class is fulfilled (either resolved or rejected).
If it is fulfilled, true will be returned.
- Returns
- boolean
Indicates whether creating an instance of the class has been fulfilled (either resolved or rejected).
isRejected
- Signature
-
isRejected (): boolean
isRejected() may be used to verify if creating an instance of the class is rejected.
If it is rejected, true will be returned.
- Returns
- boolean
Indicates whether creating an instance of the class has been rejected.
isResolved
- Signature
-
isResolved (): boolean
isResolved() may be used to verify if creating an instance of the class is resolved.
If it is resolved, true will be returned.
- Returns
- boolean
Indicates whether creating an instance of the class has been resolved.
load
- Signature
-
load (options?: AbortOptions | null | undefined): Promise<this>
Loads the resources referenced by this class. This method automatically executes for a View and all of the resources it references in Map if the view is constructed with a map instance.
This method must be called by the developer when accessing a resource that will not be loaded in a View.
The load() method only triggers the loading of the resource the first time it is called. The subsequent calls return the same promise.
It's possible to provide a signal to stop being interested into a Loadable instance load status.
When the signal is aborted, the instance does not stop its loading process, only cancelLoad() can abort it.
when
- Signature
-
when <TResult1 = this, TResult2 = never>(onFulfilled?: OnFulfilledCallback<this, TResult1> | null | undefined, onRejected?: OnRejectedCallback<TResult2> | null | undefined): Promise<TResult1 | TResult2>
when() may be leveraged once an instance of the class is created. This method takes two input parameters: an onFulfilled function and an onRejected function.
The onFulfilled executes when the instance of the class loads. The
onRejected executes if the instance of the class fails to load.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| onFulfilled | OnFulfilledCallback<this, TResult1> | null | undefined | The function to call when the promise resolves. | |
| onRejected | The function to execute when the promise fails. | |
- Returns
- Promise<TResult1 | TResult2>
Returns a new promise for the result of
onFulfilledthat may be used to chain additional functions.
Example
// Although this example uses MapView, any class instance that is a promise may use when() in the same waylet view = new MapView();view.when(function(){ // This function will execute once the promise is resolved}, function(error){ // This function will execute if the promise is rejected due to an error});