Merge pull request #14388 from M0ns1gn0r/videojs-as-module

Export videojs as module and add tslint.json
This commit is contained in:
Zhengbo Li
2017-02-17 13:25:28 -08:00
committed by GitHub
3 changed files with 86 additions and 64 deletions
+59 -57
View File
@@ -1,63 +1,65 @@
// Type definitions for Video.js
// Type definitions for Video.js 5.16
// Project: https://github.com/zencoder/video-js
// Definitions by: Vincent Bortone <https://github.com/vbortone/>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// The Video.js API allows you to interact with the video through Javascript, whether the browser is playing the video through HTML5 video, Flash, or any other supported playback technologies.
// The Video.js API allows you to interact with the video through
// Javascript, whether the browser is playing the video through HTML5
// video, Flash, or any other supported playback technologies.
interface VideoJSOptions {
techOrder?: string[];
html5?: Object;
width?: number;
height?: number;
defaultVolume?: number;
children?: Object;
controls?: boolean;
src?: string;
autoplay?: boolean;
preload?: string;
declare var videojs: videojsStatic;
export = videojs;
export as namespace videojs;
type videojsStatic =
(id: any, options?: videojs.PlayerOptions, ready?: () => void) => videojs.Player;
declare namespace videojs {
interface PlayerOptions {
techOrder?: string[];
html5?: any;
width?: number;
height?: number;
defaultVolume?: number;
children?: string[];
controls?: boolean;
src?: string;
autoplay?: boolean;
preload?: string;
}
interface Source {
type: string;
src: string;
}
interface Player {
play(): Player;
pause(): Player;
paused(): boolean;
src(newSource: string | Source | Source[]): Player;
currentTime(seconds: number): Player;
currentTime(): number;
duration(): number;
buffered(): TimeRanges;
bufferedPercent(): number;
volume(percentAsDecimal: number): TimeRanges;
volume(): number;
width(): number;
width(pixels: number): Player;
height(): number;
height(pixels: number): Player;
size(width: number, height: number): Player;
requestFullScreen(): Player;
cancelFullScreen(): Player;
ready(callback: () => void ): Player;
on(eventName: string, callback: (eventObject: Event) => void ): void;
off(eventName?: string, callback?: (eventObject: Event) => void ): void;
dispose(): void;
addRemoteTextTrack(options: {}): HTMLTrackElement;
removeRemoteTextTrack(track: HTMLTrackElement): void;
poster(val?: string): string | Player;
playbackRate(rate?: number): number;
}
}
interface VideoJSSource {
type: string;
src: string;
}
interface VideoJSPlayer {
play(): VideoJSPlayer;
pause(): VideoJSPlayer;
paused(): boolean;
src(newSource: string): VideoJSPlayer;
src(newSource: VideoJSSource): VideoJSPlayer;
src(newSource: VideoJSSource[]): VideoJSPlayer;
currentTime(seconds: number): VideoJSPlayer;
currentTime(): number;
duration(): number;
buffered(): TimeRanges;
bufferedPercent(): number;
volume(percentAsDecimal: number): TimeRanges;
volume(): number;
width(): number;
width(pixels: number): VideoJSPlayer;
height(): number;
height(pixels: number): VideoJSPlayer;
size(width: number, height: number): VideoJSPlayer;
requestFullScreen(): VideoJSPlayer;
cancelFullScreen(): VideoJSPlayer;
ready(callback: () => void ): VideoJSPlayer;
on(eventName: string, callback: (eventObject: Event) => void ): void;
off(eventName: string, callback: () => void ): void;
off(eventName: string): void;
off(): void;
dispose(): void;
addRemoteTextTrack(options : {}) : HTMLTrackElement;
removeRemoteTextTrack(track : HTMLTrackElement) : void;
poster(val?: string) : string|VideoJSPlayer;
playbackRate(rate?: number) : number;
}
interface VideoJSStatic {
(id: any, options?: VideoJSOptions, ready?: () => void): VideoJSPlayer;
}
declare var videojs:VideoJSStatic;
+1
View File
@@ -0,0 +1 @@
{ "extends": "../tslint.json" }
+26 -7
View File
@@ -1,9 +1,10 @@
// Tests for Video.js API
import * as videojs from 'videojs';
videojs("example_video_1").ready(function(){
var myPlayer:VideoJSPlayer = this;
var myPlayer: videojs.Player = this;
// EXAMPLE: Start playing the video.
myPlayer.play();
@@ -57,17 +58,35 @@ videojs("example_video_1").ready(function(){
myPlayer.height(480);
myPlayer.size(640,480);
myPlayer.size(640, 480);
myPlayer.requestFullScreen();
myPlayer.cancelFullScreen();
testEvents(myPlayer);
});
var myFunc = function(){
var myPlayer: VideoJSPlayer = this;
function testEvents(myPlayer: videojs.Player) {
const myFunc = function() {
const myPlayer: videojs.Player = this;
// Do something when the event is fired
};
//myPlayer.addEvent("volumechange", myFunc);
//myPlayer.removeEvent("volumechange", myFunc);
});
myPlayer.on("error", myFunc);
// Removes the specified listener only.
myPlayer.off("error", myFunc);
const myFuncWithArg = function(e: Event) {
const myPlayer: videojs.Player = this;
// Do something when the event is fired
};
myPlayer.on("volumechange", myFuncWithArg);
// Removes all listeners for the given event type.
myPlayer.off("volumechange");
myPlayer.on("loadeddata", function() { /* Some handler. */ });
// Removes all listeners.
myPlayer.off();
}