import { AudioTrackList, VideoTrackList } from '../track-types'; import { MSMediaKeyNeededEvent, MSGraphicsTrust, MSMediaKeys } from './deperecated'; export interface IMediaElement { /** * Returns the id of the element. */ id: string; /** * Returns the node name. Only available on native HTML tags. */ readonly nodeName?: string; /** * Returns the node element. Only available on Angular classes. */ readonly elem?: any; /** * Returns an AudioTrackList object with the audio tracks for a given video element. */ readonly audioTracks: AudioTrackList; /** * Gets or sets a value that indicates whether to start playing the media automatically. */ autoplay: boolean; /** * Gets a collection of buffered time ranges. */ readonly buffered: TimeRanges; /** * Gets or sets a flag that indicates whether the client provides a set of controls for * the media (in case the developer does not include controls for the player). */ controls: boolean; crossOrigin: string | null; /** * Gets the address or URL of the current media resource that is selected by IHTMLMediaElement. */ readonly currentSrc: string; /** * Gets or sets the current playback position, in seconds. */ currentTime: number; defaultMuted: boolean; /** * Gets or sets the default playback rate when the user is not using fast forward or reverse for a video or audio resource. */ defaultPlaybackRate: number; /** * Returns the duration in seconds of the current media resource. A NaN value is returned if duration * is not available, or Infinity if the media resource is streaming. */ readonly duration: number; /** * Gets information about whether the playback has ended or not. */ readonly ended: boolean; /** * Returns an object representing the current error state of the audio or video element. */ readonly error: MediaError; /** * Gets or sets a flag to specify whether playback should restart after it completes. */ loop: boolean; readonly mediaKeys: MediaKeys | null; /** * Specifies the purpose of the audio or video media, such as background audio or alerts. */ msAudioCategory: string; /** * Specifies the output device id that the audio will be sent to. */ msAudioDeviceType: string; readonly msGraphicsTrustStatus: MSGraphicsTrust; /** * Gets the MSMediaKeys object, which is used for decrypting media data, that is associated with this media element. */ readonly msKeys: MSMediaKeys; /** * Gets or sets whether the DLNA PlayTo device is available. */ msPlayToDisabled: boolean; /** * Gets or sets the path to the preferred media source. This enables the Play To target device to * stream the media content, which can be DRM protected, from a different location, such as a cloud media server. */ msPlayToPreferredSourceUri: string; /** * Gets or sets the primary DLNA PlayTo device. */ msPlayToPrimary: boolean; /** * Gets the source associated with the media element for use by the PlayToManager. */ readonly msPlayToSource: any; /** * Specifies whether or not to enable low-latency playback on the media element. */ msRealTime: boolean; /** * Gets or sets a flag that indicates whether the audio (either audio or the audio track on video media) is muted. */ muted: boolean; /** * Gets the current network activity for the element. */ readonly networkState: number; onencrypted: (this: HTMLMediaElement, ev: MediaEncryptedEvent) => any; onmsneedkey: (this: HTMLMediaElement, ev: MSMediaKeyNeededEvent) => any; /** * Gets a flag that specifies whether playback is paused. */ readonly paused: boolean; /** * Gets or sets the current rate of speed for the media resource to play. This speed is * expressed as a multiple of the normal speed of the media resource. */ playbackRate: number; /** * Gets TimeRanges for the current media resource that has been played. */ readonly played: TimeRanges; /** * Gets or sets the current playback position, in seconds. */ preload: string; readyState: number; /** * Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked. */ readonly seekable: TimeRanges; /** * Gets a flag that indicates whether the the client is currently moving to a new playback position in the media resource. */ readonly seeking: boolean; /** * The address or URL of the a media resource that is to be considered. */ src: string; srcObject: MediaStream | null; readonly textTracks: TextTrackList; readonly videoTracks: VideoTrackList; /** * Gets or sets the volume level for audio portions of the media element. */ volume: number; readonly HAVE_CURRENT_DATA: number; readonly HAVE_ENOUGH_DATA: number; readonly HAVE_FUTURE_DATA: number; readonly HAVE_METADATA: number; readonly HAVE_NOTHING: number; readonly NETWORK_EMPTY: number; readonly NETWORK_IDLE: number; readonly NETWORK_LOADING: number; readonly NETWORK_NO_SOURCE: number; addTextTrack(kind: string, label?: string, language?: string): TextTrack; /** * Returns a string that specifies whether the client can play a given media resource type. */ canPlayType(type: string): string; /** * Resets the audio or video object and loads a new media resource. */ load(): void; /** * Clears all effects from the media pipeline. */ msClearEffects(): void; msGetAsCastingSource(): any; /** * Inserts the specified audio effect into media pipeline. */ msInsertAudioEffect(activatableClassId: string, effectRequired: boolean, config?: any): void; msSetMediaKeys(mediaKeys: MSMediaKeys): void; /** * Specifies the media protection manager for a given media pipeline. */ msSetMediaProtectionManager(mediaProtectionManager?: any): void; /** * Pauses the current playback and sets paused to TRUE. This can be used to test whether the media is * playing or paused. You can also use the pause or play events to tell whether the media is playing or not. */ pause(): void; /** * Loads and starts playback of a media resource. */ play(): Promise; setMediaKeys(mediaKeys: MediaKeys | null): Promise; addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void; }