@byomakase/omakase-player
Version:
## Omakase Player - Open source JavaScript framework for building frame accurate video experiences
76 lines (75 loc) • 3.38 kB
TypeScript
import { TimelineConfig } from './timeline';
import { Observable } from 'rxjs';
import { AlertsApi, AudioApi, MarkerListApi, MarkerTrackApi, OmakasePlayerApi, RouterVisualizationApi, SubtitlesApi, TimelineApi, VideoApi } from './api';
import { Destroyable } from './types';
import { Video, VideoLoadOptions } from './video';
import { ConfigWithOptionalStyle } from './layout';
import { MarkerListConfig } from './marker-list/marker-list';
import { VideoControllerConfig } from './video/video-controller';
import { OmpHlsConfig } from './video/video-hls-loader';
import { RouterVisualizationConfig } from './router-visualization/router-visualization';
import { MarkerTrackConfig } from './video/model';
import { ChromelessChroming, CustomChroming, DefaultChroming, StampChroming } from './player-chroming/model';
import { TimeRangeMarkerTrackApi } from './api/time-range-marker-track-api';
import { AuthenticationData } from './common/authentication';
export interface OmakasePlayerConfig {
playerHTMLElementId?: 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;
/**
* Is PIP (picture-in-picture) disabled
*/
disablePictureInPicture?: 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;
/**
* Custom video player click handler
*/
playerClickHandler?: () => void;
audioPlayMode?: VideoControllerConfig['audioPlayMode'];
/**
* Player chroming configuration
*/
playerChroming?: DefaultChroming | CustomChroming | ChromelessChroming | StampChroming;
}
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;
setWatermark(watermark: string): void;
loadVideo(videoSourceUrl: string, options?: VideoLoadOptions): Observable<Video>;
createTimeline(config: Partial<ConfigWithOptionalStyle<TimelineConfig>>): Observable<TimelineApi>;
createMarkerList(config: MarkerListConfig): Observable<MarkerListApi>;
createMarkerTrack(config: MarkerTrackConfig): Observable<MarkerTrackApi>;
initializeRouterVisualization(config: RouterVisualizationConfig): RouterVisualizationApi;
get timeline(): TimelineApi | undefined;
get video(): VideoApi;
get audio(): AudioApi;
get subtitles(): SubtitlesApi;
get alerts(): AlertsApi;
get progressMarkerTrack(): TimeRangeMarkerTrackApi | undefined;
destroy(): void;
}