@byomakase/omakase-player
Version:
## Omakase Player - Open source JavaScript framework for building frame accurate video experiences
111 lines (110 loc) • 5.58 kB
TypeScript
import { MediaThemeElement } from 'media-chrome/dist/media-theme-element';
import { PlayerChroming } from './model';
import { PlayerChromingDomControllerApi } from './player-chroming-dom-controller-api';
import { MediaChromeButton, MediaControlBar, MediaController, MediaTooltip } from 'media-chrome';
import { OmakaseAudioVisualization, OmakaseMarkerBar, OmakasePlayButton, OmakasePreviewThumbnail, OmakaseTimeDisplay, OmakaseTimeRange } from '../components';
import { OmakaseVolumeRange } from '../components/omakase-volume-range';
import { OmakaseMuteButton } from '../components/omakase-mute-button';
import { OmakaseDropdown } from '../components/omakase-dropdown';
import { OmakaseDropdownList } from '../components/omakase-dropdown-list';
import { OmakaseDropdownToggle } from '../components/omakase-dropdown-toggle';
import { VideoControllerApi } from '../video';
import { Subject } from 'rxjs';
import { VttAdapter } from '../common/vtt-adapter';
import { ThumbnailVttFile } from '../vtt';
import { MarkerTrackConfig } from '../video/model';
import { MarkerTrackApi } from '../api';
import { TimeRangeMarkerTrackApi } from '../api/time-range-marker-track-api';
import { DomController } from '../dom/dom-controller';
import { CaptionsRenderer } from 'media-captions';
export interface PlayerChromingDomControllerConfig {
playerHTMLElementId: string;
detachedPlayer: boolean;
playerChroming: PlayerChroming;
}
export declare const PLAYER_CHROMING_DOM_CONTROLLER_CONFIG_DEFAULT: PlayerChromingDomControllerConfig;
export declare class PlayerChromingDomController extends DomController implements PlayerChromingDomControllerApi {
protected readonly _config: PlayerChromingDomControllerConfig;
protected readonly _vttAdapter: VttAdapter<ThumbnailVttFile>;
protected _themeElement: MediaThemeElement;
protected _mediaControllerElement: MediaController;
protected readonly _divPlayer: HTMLElement;
protected _controlBar?: MediaControlBar;
protected _omakaseControlBar?: HTMLElement;
protected _buttonFastRewind?: MediaChromeButton;
protected _buttonRewind?: MediaChromeButton;
protected _buttonForward?: MediaChromeButton;
protected _buttonFastForward?: MediaChromeButton;
protected _buttonAttach?: MediaChromeButton;
protected _buttonDetach?: MediaChromeButton;
protected _buttonPlay?: OmakasePlayButton;
protected _buttonCloseControlBar?: MediaChromeButton;
protected _buttonControlBarToggle?: MediaChromeButton;
protected _timeRangeControl?: OmakaseTimeRange;
protected _volumeRangeControls?: OmakaseVolumeRange[];
protected _currentTimecode?: OmakaseTimeDisplay;
protected _previewTimecode?: OmakaseTimeDisplay;
protected _timeDuration?: OmakaseTimeDisplay;
protected _previewThumbnail?: OmakasePreviewThumbnail;
protected _muteButtons?: OmakaseMuteButton[];
protected _textButton?: MediaChromeButton;
protected _speedDropdown?: OmakaseDropdown;
protected _audioDropdown?: OmakaseDropdown;
protected _speedDropdownList?: OmakaseDropdownList;
protected _audioDropdownList?: OmakaseDropdownList;
protected _textDropdownList?: OmakaseDropdownList;
protected _sidecarDropdownList?: OmakaseDropdownList;
protected _audioDropdownToggle?: OmakaseDropdownToggle;
protected _markerBar?: OmakaseMarkerBar;
protected _audioVisualization?: OmakaseAudioVisualization;
protected _buttonBitc?: MediaChromeButton;
protected _buttonHelp?: MediaChromeButton;
protected _tooltipBitc?: MediaTooltip;
protected _divTimecode?: HTMLElement;
protected _divBackground?: HTMLElement;
protected _timecodeWrapper?: HTMLElement;
protected _captions?: HTMLElement;
protected _sectionTopRight?: HTMLElement;
protected _previewWrapper?: HTMLElement;
protected _divHelpMenu?: HTMLElement;
protected _captionsRenderer?: CaptionsRenderer;
protected _bitcEnabled: boolean;
protected _enterPictureInPictureHandler: () => void;
protected _leavePictureInPictureHandler: () => void;
protected _videoController: VideoControllerApi;
protected _videoEventBreaker$: Subject<void>;
protected _subtitleEventBreaker$: Subject<void>;
protected _destroyed$: Subject<void>;
get mediaControllerElement(): MediaController;
get themeElement(): MediaThemeElement;
get playerChroming(): PlayerChroming;
set playerChroming(playerChroming: PlayerChroming);
constructor(config: PlayerChromingDomControllerConfig);
createTemplateDom(): string;
createSlotsDom(): string;
initializeDomProperties(): void;
updateControlBar(): void;
updateBitc(): void;
private createControlBarDom;
private createAudioTextDropdownDom;
private alignAudioTextDropdown;
private getAudioTextRightOffset;
private getVisibilityClass;
getShadowElement<T>(querySelector: string): T;
getShadowElements<T>(querySelector: string): T[] | undefined;
getShadowElementByClass<T>(className: string): T;
getShadowElementById<T>(id: string): T;
loadThumbnailVtt(vttUrl: string): import("rxjs").Observable<void>;
attachVideoController(videoController: VideoControllerApi): void;
createMarkerTrack(config: MarkerTrackConfig): MarkerTrackApi;
getProgressMarkerTrack(): TimeRangeMarkerTrackApi | undefined;
hideStampOverlay(): void;
destroy(): void;
private getMainAudioOptions;
private getSidecarOptions;
private getUnifiedAudioOptions;
private togglePIP;
private getControlBarClass;
private showCaptions;
private hideCaptions;
}