@byomakase/omakase-player
Version:
## Omakase Player - Open source JavaScript framework for building frame accurate video experiences
83 lines (82 loc) • 3.33 kB
TypeScript
import { TimelineConfig } from './timeline';
import { Observable } from 'rxjs';
import { AlertsApi, AudioApi, MarkerListApi, OmakasePlayerApi, SubtitlesApi, TimelineApi, VideoApi } from './api';
import { Destroyable } from './types';
import { Video, VideoLoadOptions } from './video';
import { MediaChromeVisibility } from './video/video-dom-controller';
import { ConfigWithOptionalStyle } from './layout';
import { MarkerListConfig } from './marker-list/marker-list';
import { AuthenticationData } from './authentication/model';
import { OmpHlsConfig } from './video/video-hls-loader';
import { RouterVisualizationConfig } from './router-visualization/router-visualization';
import { RouterVisualizationApi } from './api/router-visualization-api';
export interface OmakasePlayerConfig {
playerHTMLElementId?: string;
mediaChromeHTMLElementId?: string;
crossorigin?: 'anonymous' | 'use-credentials';
/**
* HLS configuration
*/
hlsConfig?: Partial<OmpHlsConfig>;
vttDownsamplePeriod?: number;
/**
* Is this OmakasePlayer instance a detached player instance. Property is set on detached player.
*/
detachedPlayer?: boolean;
/**
* Function that will return URL where detached player resides. Property is set on non-detached (local) player side.
*/
detachedPlayerUrlFn?: (video: Video, videoLoadOptions?: VideoLoadOptions) => string;
/**
* Authentication data for HLS.js, VTT and thumbnail image requests
*/
authentication?: AuthenticationData;
/**
* Show player with or without media chrome controls
*/
mediaChrome?: MediaChromeVisibility;
/**
* VTT url for the thumbnails (used for preview in media chrome time range)
*/
thumbnailVttUrl?: string;
/**
* Function to get thumbnail url from time (used for preview in media chrome time range)
*/
thumbnailFn?: (time: number) => string | undefined;
/**
* Custom video player click handler
*/
playerClickHandler?: () => void;
/**
* Custom options for playback speed rate
*/
playbackRateOptions?: number[];
/**
* Watermark text or svg
*/
watermark?: string;
}
export declare class OmakasePlayer implements OmakasePlayerApi, Destroyable {
static instance: OmakasePlayerApi;
private readonly _config;
private readonly _videoDomController;
private readonly _alertsController;
private _videoController;
private _audioController;
private _subtitlesController;
private _timeline?;
private _destroyed$;
constructor(config?: Partial<OmakasePlayerConfig>);
setAuthentication(authentication: AuthenticationData): void;
setThumbnailVttUrl(thumbnailVttUrl: string): void;
loadVideo(videoSourceUrl: string, frameRate: number | string, options?: VideoLoadOptions): Observable<Video>;
createTimeline(config: Partial<ConfigWithOptionalStyle<TimelineConfig>>): Observable<TimelineApi>;
createMarkerList(config: MarkerListConfig): Observable<MarkerListApi>;
initializeRouterVisualization(config: RouterVisualizationConfig): RouterVisualizationApi;
get timeline(): TimelineApi | undefined;
get video(): VideoApi;
get audio(): AudioApi;
get subtitles(): SubtitlesApi;
get alerts(): AlertsApi;
destroy(): void;
}