From 3871861d4e2d54f46de16cc77eea7523427c6728 Mon Sep 17 00:00:00 2001 From: Vincent Bortone Date: Fri, 8 Feb 2013 15:39:33 -0500 Subject: [PATCH] Initial commit --- videojs/videojs-tests.ts | 74 ++++++++++++++++++++++++++++++++++++++++ videojs/videojs.d.ts | 51 +++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 videojs/videojs-tests.ts create mode 100644 videojs/videojs.d.ts diff --git a/videojs/videojs-tests.ts b/videojs/videojs-tests.ts new file mode 100644 index 0000000000..7995339acb --- /dev/null +++ b/videojs/videojs-tests.ts @@ -0,0 +1,74 @@ +// Tests for Video.js API +/// + +_V_("example_video_1").ready(function(){ + + var myPlayer:VideoJSPlayer = this; + + // EXAMPLE: Start playing the video. + myPlayer.play(); + + myPlayer.pause(); + + var isPaused: bool = myPlayer.paused(); + var isPlaying: bool = !myPlayer.paused(); + + myPlayer.src("http://www.example.com/path/to/video.mp4"); + + myPlayer.src({ type: "video/mp4", src: "http://www.example.com/path/to/video.mp4" }); + + myPlayer.src([ + { type: "video/mp4", src: "http://www.example.com/path/to/video.mp4" }, + { type: "video/webm", src: "http://www.example.com/path/to/video.webm" }, + { type: "video/ogg", src: "http://www.example.com/path/to/video.ogv" } + ]); + + var whereYouAt: number = myPlayer.currentTime(); + + myPlayer.currentTime(120); // 2 minutes into the video + + var howLongIsThis: number = myPlayer.duration(); + + var bufferedTimeRange: TimeRanges = myPlayer.buffered(); + + // Number of different ranges of time have been buffered. Usually 1. + var numberOfRanges: number = bufferedTimeRange.length; + + // Time in seconds when the first range starts. Usually 0. + var firstRangeStart: number = bufferedTimeRange.start(0); + + // Time in seconds when the first range ends + var firstRangeEnd: number = bufferedTimeRange.end(0); + + // Length in seconds of the first time range + var firstRangeLength: number = firstRangeEnd - firstRangeStart; + + var howMuchIsDownloaded: number = myPlayer.bufferedPercent(); + + var howLoudIsIt: number = myPlayer.volume(); + + myPlayer.volume(0.5); // Set volume to half + + var howWideIsIt: number = myPlayer.width(); + + myPlayer.width(640); + + var howTallIsIt: number = myPlayer.height(); + + myPlayer.height(480); + + myPlayer.size(640,480); + + myPlayer.requestFullScreen(); + + myPlayer.cancelFullScreen(); + + + var myFunc = function(){ + var myPlayer: VideoJSPlayer = this; + // Do something when the event is fired + }; + myPlayer.addEvent("volumechange", myFunc); + myPlayer.removeEvent("volumechange", myFunc); + +}); \ No newline at end of file diff --git a/videojs/videojs.d.ts b/videojs/videojs.d.ts new file mode 100644 index 0000000000..49fb1c09a8 --- /dev/null +++ b/videojs/videojs.d.ts @@ -0,0 +1,51 @@ +// Type definitions for Video.js +// 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. +// Project: https://github.com/zencoder/video-js +// Definitions by: Vincent Bortone +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface VideoJSOptions { + techOrder?: string[]; + html5?: Object; + width?: number; + height?: number; + defaultVolume?: number; + children?: Object; +} + +interface VideoJSSource { + type: string; + src: string; +} + +interface VideoJSPlayer { + play(): VideoJSPlayer; + pause(): VideoJSPlayer; + paused(): bool; + 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 ): void; + addEvent(eventName: string, callback: () => void ): void; + removeEvent(eventName: string, callback: () => void ): void; +} + +interface VideoJSStatic { + (id: any, options?: VideoJSOptions, ready?: () => void): VideoJSPlayer; +} + +declare var _V_:VideoJSStatic; \ No newline at end of file