From cabeeb8dabfdd0a545734d293a840f4cd05e7f46 Mon Sep 17 00:00:00 2001 From: Aaron Czichon Date: Thu, 4 Aug 2016 23:57:44 +0200 Subject: [PATCH] feat(video-player): Added video player plugin (#391) * Added OneSignal wrapper * documentation * Changes for callback of notification revieced * fixes for @Cordova decorators without Promise return * Merge * Improvements to OneSignal extended init function with notificationOpenedCallback as an optional parameter * Platforms removed OneSignal supports more than only these 3 platforms. It's available to nearly all Cordova platforms. * Init method turned into observable * Screen Orientation Plugin added. Closes #342 * Added VideoPlayer plugin #318 --- src/index.ts | 3 ++ src/plugins/video-player.ts | 62 +++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 src/plugins/video-player.ts diff --git a/src/index.ts b/src/index.ts index 7ee5c0537f..02b32b766e 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 0000000000..33e8306e86 --- /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