@oplayer/shaka
Version:
shaka-player plugin for oplayer
61 lines • 1.96 kB
TypeScript
import { PartialRequired, type Player, type PlayerPlugin, type Source } from '@oplayer/core';
import type shaka from 'shaka-player';
export type Matcher = (source: Source) => boolean;
export interface ShakaPluginOptions {
library?: string;
matcher?: Matcher;
/**
*shaka config
* @type {object}
*/
config?: any;
requestFilter?: shaka.extern.RequestFilter;
/**
*default: 'menu'
*/
qualityControlType?: 'menu' | 'setting';
qualityControl?: boolean;
audioControl?: boolean;
textControl?: boolean;
}
declare class ShakaPlugin implements PlayerPlugin {
key: string;
name: string;
version: string;
static library: typeof shaka;
player: Player;
instance?: shaka.Player & {
eventManager: shaka.util.EventManager;
};
options: PartialRequired<ShakaPluginOptions, 'matcher'>;
constructor(options?: ShakaPluginOptions);
apply(player: Player): this;
load(player: Player, source: Source): Promise<false | this>;
getCurrentTime(): number;
get seekRange(): {
start: number;
end: number;
};
get _duration(): number;
destroy(): Promise<void>;
setupQuality: (player: Player, instance: shaka.Player, qualityControlType: ShakaPluginOptions["qualityControlType"]) => void;
setupAudioSelection: (player: Player, instance: shaka.Player) => void;
setupTextSelection: (player: Player, instance: shaka.Player) => void;
settingUpdater(arg: {
icon: string;
name: string;
settings: {
name: string;
default: boolean;
value: any;
}[];
player: Player;
onChange: (it: {
value: any;
}) => void;
}): void;
getResolutionLabel_(track: shaka.extern.Track, tracks: shaka.extern.Track[]): string;
}
export default function create(options?: ShakaPluginOptions): ShakaPlugin;
export {};
//# sourceMappingURL=index.d.ts.map