🤖 Merge PR #63737 [jwplayer] Add getCues, setCues methods and events by @martin-badin

* [jwplayer] Add getCues, setCues methods and events

* add getFloating and setFloating

* add getPlugin and addPlugin

* add getAdBlock, pauseAd and skipAd
This commit is contained in:
martin-badin
2022-12-29 07:44:14 +01:00
committed by GitHub
parent 0cb820adf9
commit 69e0ba9985
2 changed files with 82 additions and 22 deletions

View File

@@ -10,7 +10,6 @@
// Zack Haigh <https://github.com/zetagame>
// Ethan Setnik <https://github.com/esetnik>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.2
// JW Player is the leading HTML5 & Flash video player, optimized for mobile and the desktop. Easy enough for beginners, advanced enough for pros.
@@ -336,41 +335,54 @@ declare namespace jwplayer {
type NoParamEvent =
| 'adBlock'
| 'beforeComplete'
| 'complete'
| 'beforePlay'
| 'complete'
| 'displayClick'
| 'playlistComplete'
| 'remove'
| 'seeked'
| 'remove';
| 'userActive'
| 'userInactive';
interface SliderCue {
begin: number;
cueType: string;
text: string;
}
interface JWPlayer {
addButton(icon: string, label: string, handler: () => void, id: string, className?: string): JWPlayer;
addCues(cues: Array<{ begin: number; cueType: string; text: string }>): JWPlayer;
addCues(cues: SliderCue[]): JWPlayer;
addPlugin(name: string, pluginInstance: any): void;
getAdBlock(): boolean;
getAudioTracks(): any[];
getBuffer(): number;
getCaptionsList(): any[];
getContainer(): HTMLElement;
getControls(): boolean;
getCues(): SliderCue[];
getCurrentAudioTrack(): number;
getCurrentCaptions(): number;
getCurrentQuality(): number;
getDuration(): number;
getHeight(): number;
getEnvironment(): Environment;
getFloating(): boolean;
getFullscreen(): boolean;
getHeight(): number;
getMute(): boolean;
getPlaybackRate(): number;
getPlaylist(): any[];
getPlaylistIndex(): number;
getPlaylistItem(index?: number): any;
getPlugin(name: string): any;
getPosition(): number;
getQualityLevels(): any[];
getRenderingMode(): string;
getSafeRegion(): Region;
getState(): string;
getVolume(): number;
getContainer(): HTMLElement;
getEnvironment(): Environment;
getWidth(): number;
getVisualQuality(): QualityLevel | undefined;
getPlaybackRate(): number;
getVolume(): number;
getWidth(): number;
load(playlist: any[] | string): JWPlayer;
on<TEvent extends keyof EventParams>(event: TEvent, callback: EventCallback<EventParams[TEvent]>): JWPlayer;
on(event: NoParamEvent, callback: () => void): JWPlayer;
@@ -382,32 +394,36 @@ declare namespace jwplayer {
trigger<TEvent extends keyof EventParams>(event: TEvent, args: EventParams[TEvent]): JWPlayer;
trigger(event: NoParamEvent): JWPlayer;
pause(state?: boolean): JWPlayer;
pauseAd(toggle: boolean): void;
play(state?: boolean): JWPlayer;
playAd(tag: string): void;
playAd(tag: string | string[]): void;
playlistItem(index: number): void;
registerPlugin(id: string, target: string, jsPlugin: () => void, swfURL?: string): void;
remove(): JWPlayer;
removeButton(id: string): JWPlayer;
resize(width: number | string, height: number): JWPlayer;
seek(position: number): JWPlayer;
setCaptions(options: CaptionOptions): JWPlayer;
setControls(controls: boolean): void;
setCues(cues: SliderCue[]): JWPlayer;
setCurrentAudioTrack(index: number): void;
setCurrentCaptions(index: number): void;
setCurrentQuality(index: number): void;
setPlaybackRate(rate: number): void;
setFloating(shouldFloat: boolean): void;
setFullscreen(state: boolean): void;
setMute(state?: boolean): JWPlayer;
setPlaybackRate(rate: number): void;
setup(options: any): JWPlayer;
setVolume(volume: number): JWPlayer;
setCaptions(options: CaptionOptions): JWPlayer;
skipAd(): JWPlayer;
stop(): JWPlayer;
}
interface JWPlayerStatic {
(query?: string | number | Element): JWPlayer;
key: string;
version: string;
}
}
declare const jwplayer: jwplayer.JWPlayerStatic;
interface JWPlayerStatic {
(query?: string | number | Element): jwplayer.JWPlayer;
key: string;
version: string;
}
declare const jwplayer: JWPlayerStatic;

View File

@@ -1,2 +1,46 @@
jwplayer('id').resize(40, 40);
jwplayer('id').resize('50%', 100);
// $ExpectType string
jwplayer.version;
// $ExpectType string
jwplayer.key;
const sliderCue: jwplayer.SliderCue = {
begin: new Date().getTime(),
cueType: 'type',
text: 'Label',
};
// $ExpectType JWPlayer
const player = jwplayer('id');
// $ExpectType SliderCue[]
player.getCues();
// $ExpectType boolean
player.getFloating();
// $ExpectType void
player.setFloating(true);
// $ExpectType any
player.getPlugin('pluginName');
// $ExpectType void
player.addPlugin('pluginName', {});
// $ExpectType boolean
player.getAdBlock();
// $ExpectType void
player.pauseAd(true);
// $ExpectType JWPlayer
player.skipAd();
// $ExpectType JWPlayer
player
.addCues([sliderCue])
.on('userActive', () => {})
.on('userInactive', () => {})
.resize('50%', 100)
.resize(40, 40)
.setCues([sliderCue]);