diff --git a/src/index.ts b/src/index.ts index 7ee5c053..02b32b76 100644 --- a/src/index.ts +++ b/src/index.ts @@ -79,6 +79,7 @@ import {Toast} from './plugins/toast'; import {TouchID} from './plugins/touchid'; import {TwitterConnect} from './plugins/twitter-connect'; import {Vibration} from './plugins/vibration'; +import {VideoPlayer} from './plugins/video-player'; import {WebIntent} from './plugins/webintent'; export * from './plugins/3dtouch'; export * from './plugins/background-geolocation'; @@ -111,6 +112,7 @@ export * from './plugins/sms'; export * from './plugins/spinnerdialog'; export * from './plugins/toast'; export * from './plugins/twitter-connect'; +export * from './plugins/video-player'; export { ActionSheet, AdMob, @@ -238,6 +240,7 @@ window['IonicNative'] = { TouchID: TouchID, Transfer: Transfer, TwitterConnect: TwitterConnect, + VideoPlayer: VideoPlayer, Vibration: Vibration, WebIntent: WebIntent }; diff --git a/src/plugins/video-player.ts b/src/plugins/video-player.ts new file mode 100644 index 00000000..33e8306e --- /dev/null +++ b/src/plugins/video-player.ts @@ -0,0 +1,62 @@ +import { Cordova, Plugin } from './plugin'; + +/** + * Options for the video playback using the `play` function. + */ +export interface VideoOptions { + /** + * Set the initial volume of the video playback, where 0.0 is 0% volume and 1.0 is 100%. + * For example: for a volume of 30% set the value to 0.3. + */ + volume?: number; + /** + * There are to options for the scaling mode. SCALE_TO_FIT which is default and SCALE_TO_FIT_WITH_CROPPING. + * These strings are the only ones which can be passed as option. + */ + scalingMode?: string; +} + +/** + * @name VideoPlayer + * @description + * A Codova plugin that simply allows you to immediately play a video in fullscreen mode. + * + * Requires Cordova plugin: `com.moust.cordova.videoplayer`. For more info, please see the [VideoPlayer plugin docs](https://github.com/moust/cordova-plugin-videoplayer). + * + * @usage + * ```typescript + * import { VideoPlayer } from 'ionic-native'; + * + * + * // Playing a video. + * VideoPlayer.play("file:///android_asset/www/movie.mp4").then(() => { + * console.log('video completed'); + * }).catch(err => { + * console.log(err); + * }); + * + * ``` + */ +@Plugin({ + plugin: 'cordova-plugin-videoplayer', + pluginRef: 'VideoPlayer', + repo: 'https://github.com/moust/cordova-plugin-videoplayer', + platforms: ['Android'] +}) +export class VideoPlayer { + + /** + * Plays the video from the passed url. + * @param fileUrl {string} File url to the video. + * @param options {VideoOptions?} Optional video playback settings. See options above. + * @returns {Promise} Resolves promise when the video was played successfully. + */ + @Cordova() + static play(fileUrl: string, options?: VideoOptions): Promise { return; } + + /** + * Stops the video playback immediatly. + */ + @Cordova({ sync: true }) + static close(): void { } +} \ No newline at end of file