UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

205 lines (203 loc) • 7.4 kB
import type Color from "../../Color.js"; import type Accessor from "../../core/Accessor.js"; import type VideoLayer from "../../layers/VideoLayer.js"; import type MapView from "../../views/MapView.js"; import type { VideoState } from "../../layers/video/types.js"; export interface VideoPlayerViewModelProperties extends Partial<Pick<VideoPlayerViewModel, "followingMode" | "layer" | "seekLength" | "view">> {} /** * The VideoPlayerViewModel class provides the logic for the [VideoPlayer](https://developers.arcgis.com/javascript/latest/references/core/widgets/VideoPlayer/) widget and [Video Player component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-video-player/). * * @since 4.30 * @see [VideoPlayer](https://developers.arcgis.com/javascript/latest/references/core/widgets/VideoPlayer/) - _Deprecated since 4.33. Use the [Video Player component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-video-player/) instead._ * @example * const videoPlayerViewModel = new VideoPlayerViewModel({ * layer: videoLayer, * view * });, */ export default class VideoPlayerViewModel extends Accessor { constructor(properties?: VideoPlayerViewModelProperties); /** The amount of the video layer that has been buffered, in seconds. */ get buffered(): number; /** The current time of the video layer, in seconds. */ get currentTime(): number; /** The duration of the video layer, in seconds. */ get duration(): number; /** Indicates whether the video layer has ended. */ get ended(): boolean; /** * Determines which telemetry elements to follow when the video layer is playing. * The following telemetry elements are available: * * `follow-sensor`: Follows the sensor location. * * `follow-frame`: Follows the frame center. * * `follow-both`: Follows both the sensor location and the frame center. * * @default "follow-both" * @example * // Follow the sensor location. * videoPlayerViewModel.followingMode = "follow-sensor"; */ accessor followingMode: "follow-sensor" | "follow-frame" | "follow-both" | "none"; /** * The [VideoLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/VideoLayer/) to play. * * @example * // Set the video player view model's layer to a video layer. * videoPlayerViewModel.layer = videoLayer; */ accessor layer: VideoLayer | null | undefined; /** The metadata associated with the video layer. */ get metadata(): { missionInfo: Record<string, string>; platformInfo: Record<string, string>; frameInfo: Record<string, string>; } | null; /** Indicates whether the video layer is playing. */ get playing(): boolean; /** * The number of seconds to seek forward or backward when the user clicks the seek forward or seek backward buttons. * * @default 10 * @example * // Seek the video layer forward by 5 seconds. * videoPlayerViewModel.seekLength = 5; */ accessor seekLength: number; /** The state of the video layer. */ get state(): VideoState | "error"; /** * The [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) in which the video layer is displayed. * * @example * // Set the video player view model's view to a map view. * videoPlayerViewModel.view = mapView; */ accessor view: MapView | null | undefined; /** * Changes the color of the graphics drawn on the map to represent telemetry elements such as sensor location and frame. * * @param color - The color of the graphics * @example * // Change the video layer telemetry graphics color to red. * videoPlayerViewModel.changeGraphicsColor(new Color("red")); */ changeGraphicsColor(color: Color): void; /** * Changes the playback speed of the video layer. * * @param speed - The playback speed of the video. A value of 1.0 is normal speed, 0.5 is half speed, and 2.0 is double speed. * @example * // Change the video layer playback speed to 2x. * videoPlayerViewModel.changePlaybackSpeed(2); */ changePlaybackSpeed(speed: number): void; /** * Pauses the video layer. * * @example * // Pause the video layer. * videoPlayerViewModel.pause(); */ pause(): void; /** * Plays the video layer. * * @example * // Play the video layer. * videoPlayerViewModel.play(); */ play(): void; /** * Seeks the video layer backward by the number of seconds specified by the [seekLength](https://developers.arcgis.com/javascript/latest/references/core/widgets/VideoPlayer/VideoPlayerViewModel/#seekLength) property. * * @see [seekLength](https://developers.arcgis.com/javascript/latest/references/core/widgets/VideoPlayer/VideoPlayerViewModel/#seekLength) * @example * // Seek the video layer backward by 20 seconds. * videoPlayerViewModel.seekLength = 20; * videoPlayerViewModel.seekBackward(); */ seekBackward(): void; /** * Seeks the video layer forward by the number of seconds specified by the [seekLength](https://developers.arcgis.com/javascript/latest/references/core/widgets/VideoPlayer/VideoPlayerViewModel/#seekLength) property. * * @see [seekLength](https://developers.arcgis.com/javascript/latest/references/core/widgets/VideoPlayer/VideoPlayerViewModel/#seekLength) * @example * // Seek the video layer forward by 20 seconds. * videoPlayerViewModel.seekLength = 20; * videoPlayerViewModel.seekForward(); */ seekForward(): void; /** * Seeks the video layer to the specified time. * * @param seekToTime - The time to seek to, in seconds. * @example * // Seek the video layer to 30 seconds. * videoPlayerViewModel.seekTo(30); */ seekTo(seekToTime: number): void; /** * Seeks the video layer to the beginning. * * @example * // Seek the video layer to the beginning. * videoPlayerViewModel.seekToBeginning(); */ seekToBeginning(): void; /** * Seeks the video layer to the ending. * * @example * // Seek the video layer to the ending. * videoPlayerViewModel.seekToEnding(); */ seekToEnding(): void; /** * Toggles the frame center display. * * @example * // Toggle the frame center display. * videoPlayerViewModel.toggleFrameCenterDisplay(); */ toggleFrameCenterDisplay(): void; /** * Toggles the video frame image draped on the map. * * @example * // Toggle the frame display. * videoPlayerViewModel.toggleFrameDisplay(); */ toggleFrameDisplay(): void; /** * Toggles the frame outline display. * * @example * // Toggle the frame outline display. * videoPlayerViewModel.toggleFrameOutlineDisplay(); */ toggleFrameOutlineDisplay(): void; /** * Toggles the sensor display. * * @example * // Toggle the sensor display. * videoPlayerViewModel.toggleSensorDisplay(); */ toggleSensorDisplay(): void; /** * Toggles the sensor sight line display. * * @example * // Toggle the sensor sight line display. * videoPlayerViewModel.toggleSensorSightLineDisplay(); */ toggleSensorSightLineDisplay(): void; /** * Toggles the sensor trail display. * * @example * // Toggle the sensor trail display. * videoPlayerViewModel.toggleSensorTrailDisplay(); */ toggleSensorTrailDisplay(): void; }