@byomakase/omakase-player
Version:
## Omakase Player - Open source JavaScript framework for building frame accurate video experiences
76 lines (75 loc) • 3.16 kB
TypeScript
import { TimelineConfig } from './timeline';
import { Observable } from 'rxjs';
import { AudioApi, MarkerListApi, 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 { PlayerChroming } from './player-chroming/model';
import { AuthenticationData } from './common/authentication';
import { ConfigAdapter } from './common/config-adapter';
import { ChromingApi } from './api/chroming-api';
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?: PlayerChroming;
}
export declare class OmakasePlayer implements OmakasePlayerApi, Destroyable {
static instance: OmakasePlayerApi;
protected readonly _configAdapter: ConfigAdapter;
private readonly _config;
private readonly _videoDomController;
private readonly _alertsController;
private _videoController;
private _audioController;
private _subtitlesController;
private _chromingController;
private _timeline?;
private _destroyed$;
constructor(config?: Partial<OmakasePlayerConfig>);
setAuthentication(authentication: AuthenticationData): void;
loadVideo(videoSourceUrl: 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 chroming(): ChromingApi;
get config(): OmakasePlayerConfig;
set config(config: Partial<OmakasePlayerConfig>);
destroy(): void;
}