react-native-theoplayer
Version:
A THEOplayer video component for react-native.
230 lines (197 loc) • 6.16 kB
text/typescript
import type { Event } from '../event/Event';
import type {
DurationChangeEvent,
ErrorEvent,
LoadedMetadataEvent,
ProgressEvent,
RateChangeEvent,
ReadyStateChangeEvent,
SegmentNotFoundEvent,
TimeUpdateEvent,
PresentationModeChangeEvent,
VolumeChangeEvent,
ResizeEvent,
} from '../event/PlayerEvent';
import type { MediaTrackEvent, MediaTrackListEvent, TextTrackEvent, TextTrackListEvent } from '../event/TrackEvent';
import type { AdEvent } from '../event/AdEvent';
import type { CastEvent } from '../event/CastEvent';
import type { TheoAdsEvent } from '../event/TheoAdsEvent';
import type { TheoLiveEvent } from '../event/TheoLiveEvent';
/**
* The event types dispatched by the {@link Player}.
*
* @category Player
* @category Events
* @public
*/
export enum PlayerEventType {
PLAY = 'play',
CANPLAY = 'canplay',
PLAYING = 'playing',
SOURCE_CHANGE = 'sourcechange',
LOAD_START = 'loadstart',
LOADED_METADATA = 'loadedmetadata',
LOADED_DATA = 'loadeddata',
READYSTATE_CHANGE = 'readystatechange',
ERROR = 'error',
PROGRESS = 'progress',
PAUSE = 'pause',
SEEKING = 'seeking',
SEEKED = 'seeked',
ENDED = 'ended',
TIME_UPDATE = 'timeupdate',
DURATION_CHANGE = 'durationchange',
RATE_CHANGE = 'ratechange',
SEGMENT_NOT_FOUND = 'segmentnotfound',
TEXT_TRACK_LIST = 'texttracklist',
TEXT_TRACK = 'texttrack',
MEDIA_TRACK_LIST = 'mediatracklist',
MEDIA_TRACK = 'mediatrack',
AD_EVENT = 'adevent',
THEOADS_EVENT = 'theoads',
THEOLIVE_EVENT = 'theolive',
CAST_EVENT = 'castevent',
VOLUME_CHANGE = 'volumechange',
WAITING = 'waiting',
PRESENTATIONMODE_CHANGE = 'presentationmodechange',
DESTROY = 'destroy',
RESIZE = 'resize',
}
/**
* The events dispatched by THEOplayer.
*
* @category Player
* @category Events
* @public
*/
export interface PlayerEventMap {
/**
* Dispatched when the player can resume playback of the media data.
*/
[]: Event<PlayerEventType.CANPLAY>;
/**
* Dispatched when the player's internal paused state changes to `false`.
*/
[]: Event<PlayerEventType.PLAY>;
/**
* Dispatched when playback is ready to start after having been paused or delayed due to lack of media data.
*/
[]: Event<PlayerEventType.PLAYING>;
/**
* Dispatched when the presentationMode of the player changes.
*/
[]: PresentationModeChangeEvent;
/**
* Dispatched when the player's source changes.
*/
[]: Event<PlayerEventType.SOURCE_CHANGE>;
/**
* Dispatched when the player starts loading the manifest.
*/
[]: Event<PlayerEventType.LOAD_START>;
/**
* Dispatched when the player determines the metadata for its source.
*/
[]: LoadedMetadataEvent;
/**
* Dispatched when the player can render the media data at the current playback position for the first time.
*/
[]: Event<PlayerEventType.LOADED_DATA>;
/**
* Dispatched when the player's readyState has changed.
*/
[]: ReadyStateChangeEvent;
/**
* Dispatched when the player's volume changes.
*/
[]: VolumeChangeEvent;
/**
* Dispatched when an error occurs.
*/
[]: ErrorEvent;
/**
* Dispatched each time the player has loaded media data.
*/
[]: ProgressEvent;
/**
* Dispatched when the player's internal paused state changes to `true`.
*/
[]: Event<PlayerEventType.PAUSE>;
/**
* Dispatched when a seek operation starts and the player is seeking a new position.
*/
[]: Event<PlayerEventType.SEEKING>;
/**
* Dispatched when a seek operation completed and the current playback position has changed.
*/
[]: Event<PlayerEventType.SEEKED>;
/**
* Dispatched when playback has stopped because the end of the media was reached or because
* no further data is available.
*/
[]: Event<PlayerEventType.ENDED>;
/**
* Dispatched when playback has stopped because the next frame is not available, but the
* player expects that frame to become available in due course.
*/
[]: Event<PlayerEventType.WAITING>;
/**
* Dispatched each time the current playback position changed.
*/
[]: TimeUpdateEvent;
/**
* Dispatched when the player's duration attribute has been updated.
*/
[]: DurationChangeEvent;
/**
* Dispatched when the player's playbackRate changes.
*/
[]: RateChangeEvent;
/**
* Dispatched when a segment can not be found.
*
* @remarks
* <br/> - Only dispatched on DASH streams.
*/
[]: SegmentNotFoundEvent;
/**
* Dispatched when a text track list event occurs.
*/
[]: TextTrackListEvent;
/**
* Dispatched when a text track event occurs.
*/
[]: TextTrackEvent;
/**
* Dispatched when a media track list event occurs.
*/
[]: MediaTrackListEvent;
/**
* Dispatched when a media track event occurs.
*/
[]: MediaTrackEvent;
/**
* Dispatched when an ad event occurs.
*/
[]: AdEvent;
/**
* Dispatched when a THEOads event occurs.
*/
[]: TheoAdsEvent;
/**
* Dispatched when a THEOlive event occurs.
*/
[]: TheoLiveEvent;
/**
* Dispatched when a cast event occurs, either for Chromecast or Airplay.
*/
[]: CastEvent;
/**
* Dispatched when the player will be destroyed.
*/
[]: Event<PlayerEventType.DESTROY>;
/**
* Dispatched when the player size changes.
*/
[]: ResizeEvent;
}