Skip to content
ESM
import "@arcgis/map-components/components/arcgis-video-player";
Inheritance:
ArcgisVideoPlayerPublicLitElement
Since
ArcGIS Maps SDK for JavaScript 4.33

The Video Player component provides a user interface for interacting with a VideoLayer. It displays the original video content and provides controls for playing, pausing, seeking, and changing the video speed and quality.

The Video Player component provides the following capabilities:

  • Control operations (play, pause, seek)
  • Time and duration display
  • Customizable graphics colors
  • Following options (sensor, frame, video)
  • Adjustable speed and quality
  • Access to frame metadata

The VideoPlayerViewModel class provides the logic for the Video Player.

Known limitations

  • Not supported in 3D arcgis-scene.
  • Not supported on macOS and iOS devices.

Example
<arcgis-map>
<arcgis-video-player slot="top-right"></arcgis-video-player>
</arcgis-map>
<script type="module">
const [Map, VideoLayer] = await $arcgis.import([
"@arcgis/core/Map.js",
"@arcgis/core/layers/VideoLayer.js",
]);
const viewElement = document.querySelector("arcgis-map");
const videoPlayerElement = document.querySelector("arcgis-video-player");
const videoLayer = new VideoLayer({
url: "YOUR_VIDEO_LAYER_URL",
});
viewElement.map = new Map({
basemap: "topo-vector",
layers: [videoLayer],
});
await viewElement.viewOnReady();
await videoLayer.load();
if (videoLayer.loaded) {
videoPlayerElement.layer = videoLayer;
}
await viewElement.whenLayerView(videoLayer);
viewElement.goTo(videoLayer.fullExtent);
</script>

Properties

PropertyAttributeType
auto-destroy-disabled
following-mode
VideoPlayerViewModel["followingMode"]
hide-header
icon
inline
reflected
inline
label
reflected
label
reference-element
show-fullscreen-toggle
state
readonly
"error" | VideoState

autoDestroyDisabled

Property
Type
boolean

If true, the component will not be destroyed automatically when it is disconnected from the document. This is useful when you want to move the component to a different place on the page, or temporarily hide it. If this is set, make sure to call the destroy() method when you are done to prevent memory leaks.

Attribute
auto-destroy-disabled
Default value
false

followingMode

Property
Type
VideoPlayerViewModel["followingMode"]

Determines which telemetry elements to follow when the video layer is playing.

Attribute
following-mode
Default value
"follow-both"

hideHeader

Property
Type
boolean

Indicates whether to display the video player's header information.

Attribute
hide-header
Default value
false

icon

Property
Type
string | undefined

Icon which represents the component. Typically used when the component is controlled by another component (e.g. by the Expand component).

See also
Attribute
icon
Default value
"video-web"

inline

reflected Property
Type
boolean
Attribute
inline
Default value
false

label

reflected Property
Type
string | undefined

The component's default label.

Attribute
label

layer

Property
Type
VideoLayer | null | undefined

The VideoLayer to use as the data source for the video player.

Default value
null
Example
// Create a new Video Player with a VideoLayer
videoPlayer.layer = videoLayer;

messageOverrides

Property
Type
Record<string, unknown> | undefined

Replace localized message strings with your own strings.

Note: Individual message keys may change between releases.

referenceElement

Property
Type
ArcgisReferenceElement | string | undefined

By assigning the id attribute of the Map or Scene component to this property, you can position a child component anywhere in the DOM while still maintaining a connection to the Map or Scene.

See also
Attribute
reference-element

showFullscreenToggle

Property
Type
boolean
Attribute
show-fullscreen-toggle
Default value
false

state

readonly Property
Type
"error" | VideoState

The current state of the component.

view

Property
Type
MapView | null | undefined

The view associated with the component.

Note: The recommended approach is to fully migrate applications to use map and scene components and avoid using MapView and SceneView directly. However, if you are migrating a large application from widgets to components, you might prefer a more gradual transition. To support this use case, the SDK includes this view property which connects a component to a MapView or SceneView. Ultimately, once migration is complete, the arcgis-video-player component will be associated with a map or scene component rather than using the view property.

Example
// Set the video player view model's view to a map view.
videoPlayerViewModel.view = mapView;

Methods

MethodSignature
componentOnReady
inherited
componentOnReady(): Promise<this>
destroy(): Promise<void>

componentOnReady

inherited Method
Signature
componentOnReady (): Promise<this>
Inherited from: PublicLitElement

Creates a promise that resolves once the component is fully loaded.

Returns
Promise<this>
Example
const arcgisVideoPlayer = document.querySelector("arcgis-video-player");
document.body.append(arcgisVideoPlayer);
await arcgisVideoPlayer.componentOnReady();
console.log("arcgis-video-player is ready to go!");

destroy

Method
Signature
destroy (): Promise<void>

Permanently destroy the component.

Returns
Promise<void>

Events

arcgisPropertyChange

Event
arcgisPropertyChange: CustomEvent<{ name: "state" | "layer"; }>

Emitted when the value of a property is changed. Use this to listen to changes to properties.

bubbles composed cancelable

arcgisReady

Event
arcgisReady: CustomEvent<void>

Emitted when the component associated with a map or scene view is ready to be interacted with.

bubbles composed cancelable

arcgisVideoReady

Event
arcgisVideoReady: CustomEvent<void>
bubbles composed cancelable