Skip to content

Commit

Permalink
feat(streaming-media): add streaming media support (#486)
Browse files Browse the repository at this point in the history
  • Loading branch information
ihadeed authored Aug 27, 2016
1 parent ae03d72 commit 841b242
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ import { SpinnerDialog } from './plugins/spinnerdialog';
import { Splashscreen } from './plugins/splashscreen';
import { SQLite } from './plugins/sqlite';
import { StatusBar } from './plugins/statusbar';
import { StreamingMedia } from './plugins/streaming-media';
import { ThreeDeeTouch } from './plugins/3dtouch';
import { Toast } from './plugins/toast';
import { TouchID } from './plugins/touchid';
Expand Down Expand Up @@ -125,6 +126,7 @@ export * from './plugins/push';
export * from './plugins/safari-view-controller';
export * from './plugins/sms';
export * from './plugins/spinnerdialog';
export * from './plugins/streaming-media';
export * from './plugins/toast';
export * from './plugins/twitter-connect';
export * from './plugins/video-editor';
Expand Down Expand Up @@ -269,6 +271,7 @@ window['IonicNative'] = {
Splashscreen: Splashscreen,
SQLite: SQLite,
StatusBar: StatusBar,
StreamingMedia: StreamingMedia,
ThreeDeeTouch: ThreeDeeTouch,
Toast: Toast,
TouchID: TouchID,
Expand Down
77 changes: 77 additions & 0 deletions src/plugins/streaming-media.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
import {Plugin, Cordova} from './plugin';
/**
* @name StreamingMedia
* @description
* This plugin allows you to stream audio and video in a fullscreen, native player on iOS and Android.
*
* @usage
* ```
* import {StreamingMedia} from 'ionic-native';
*
* let options: VideoOptions = {
* successCallback: () => { console.log('Video played') },
* errorCallback: (e) => { console.log('Error streaming') },
* orientation: 'landscape'
* };
*
* StreamingMedia.('https://path/to/video/stream', options);
*
* ```
*/
@Plugin({
plugin: 'cordova-plugin-streaming-media',
pluginRef: 'plugins.streamingMedia',
repo: 'https://github.com/nchutchind/cordova-plugin-streaming-media',
platforms: ['Android', 'iOS']
})
export class StreamingMedia {
/**
* Streams a video
* @param videoUrl {string} The URL of the video
* @param options {VideoOptions} Options
*/
@Cordova({sync: true})
static playVideo(videoUrl: string, options?: VideoOptions): void { }

/**
* Streams an audio
* @param audioUrl {string} The URL of the audio stream
* @param options {AudioOptions} Options
*/
@Cordova({sync: true})
static playAudio(audioUrl: string, options?: AudioOptions): void { }

/**
* Stops streaming audio
*/
@Cordova({sync: true})
static stopAudio(): void { }

/**
* Pauses streaming audio
*/
@Cordova({sync: true, platforms: ['iOS']})
static pauseAudio(): void { }

/**
* Resumes streaming audio
*/
@Cordova({sync: true, platforms: ['iOS']})
static resumeAudio(): void { }

}

export interface VideoOptions {
successCallback?: Function;
errorCallback?: Function;
orientation?: string;
}

export interface AudioOptions {
bgColor?: string;
bgImage?: string;
bgImageScale?: string;
initFullscreen?: boolean;
successCallback?: Function;
errorCallback?: Function;
}

0 comments on commit 841b242

Please sign in to comment.