UNPKG

@exadel/esl

Version:

Exadel Smart Library (ESL) is the lightweight custom elements library that provide a set of super-flexible components

59 lines (58 loc) 2.02 kB
import { BaseProvider, PlayerStates } from '../core/esl-media-provider'; import type { ESLMedia } from '../core/esl-media'; import type { ProviderObservedParams } from '../core/esl-media-provider'; import type { VideoJsPlayer } from 'video.js'; export interface BCPlayerAccount { playerId: string | null; accountId: string | null; } /** * Brightcove API provider for {@link ESLMedia} * @author Julia Murashko */ export declare class BrightcoveProvider extends BaseProvider { static readonly providerName: string; protected videojsClasses: string; protected _api: VideoJsPlayer; protected _account: BCPlayerAccount; protected _autoplay: boolean; /** * @returns settings, get from element by default */ protected static getAccount(el: ESLMedia): BCPlayerAccount; /** Loads player API according defined settings */ protected static loadAPI(account: BCPlayerAccount): Promise<Event>; /** Build video brightcove element */ protected buildVideo(): HTMLElement; /** Utility method to convert api event to promise */ protected $$fromEvent(eventName: string): Promise<void>; /** * Executes as soon as api script detected or loaded. * @returns promise with provided API */ protected onAPILoaded(): Promise<void> | void; /** * Executes after API ready state resolved * Basic onAPIReady should be called to subscribe to API state */ protected onAPIReady(): Promise<void> | void; bind(): void; unbind(): void; protected onConfigChange(param: ProviderObservedParams, value: boolean): void; focus(): void; get state(): PlayerStates; get defaultAspectRatio(): number; get currentTime(): number; get duration(): number; seekTo(pos: number): void; play(): void; pause(): void; stop(): void; safePlay(): Promise<any>; safeStop(): Promise<any>; } declare global { interface Window { bc?: (el: HTMLElement, ...args: any[]) => VideoJsPlayer; } }