UNPKG

ionic-native

Version:

Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support

173 lines (172 loc) 4.82 kB
export interface MediaError { code: number; message: string; } /** * @name MediaPlugin * @description * @usage * ```typescript * import { MediaPlugin } from 'ionic-native'; * * * * // Create a MediaPlugin instance. Expects path to file or url as argument * // We can optionally pass a second argument to track the status of the media * * const onStatusUpdate = (status) => console.log(status); * * const file = new MediaPlugin('path/to/file.mp3', onStatusUpdate); * * // Catch the Success & Error Output * // Platform Quirks * // iOS calls success on completion of playback only * // Android calls success on completion of playback AND on release() * file.init.then(() => { * console.log('Playback Finished'); * }, (err) => { * console.log('somthing went wrong! error code: ' + err.code + ' message: ' + err.message); * }); * * // play the file * file.play(); * * // pause the file * file.pause(); * * // get current playback position * file.getCurrentPosition().then((position) => { * console.log(position); * }); * * // get file duration * file.getDuration(); * * // skip to 10 seconds (expects int value in ms) * file.seekTo(10000); * * // stop playing the file * file.stop(); * * // release the native audio resource * // Platform Quirks: * // iOS simply create a new instance and the old one will be overwritten * // Android you must call release() to destroy instances of media when you are done * file.release(); * * // Recording to a file * var newFile = new MediaPlugin('path/to/file.mp3'); * newFile.startRecord(); * * newFile.stopRecord(); * * * * ``` */ export declare class MediaPlugin { /** * @private */ static MEDIA_NONE: number; /** * @private */ static MEDIA_STARTING: number; /** * @private */ static MEDIA_RUNNING: number; /** * @private */ static MEDIA_PAUSED: number; /** * @private */ static MEDIA_STOPPED: number; /** * @private */ static MEDIA_ERR_ABORTED: number; /** * @private */ static MEDIA_ERR_NETWORK: number; /** * @private */ static MEDIA_ERR_DECODE: number; /** * @private */ static MEDIA_ERR_NONE_SUPPORTED: number; private _objectInstance; init: Promise<any>; /** * Open a media file * @param src {string} A URI containing the audio content. * @param onStatusUpdate {Function} A callback function to be invoked when the status of the file changes */ constructor(src: string, onStatusUpdate?: Function); /** * Get the current amplitude of the current recording. * @returns {Promise<any>} Returns a promise with the amplitude of the current recording */ getCurrentAmplitude(): Promise<any>; /** * Get the current position within an audio file. Also updates the Media object's position parameter. * @returns {Promise<any>} Returns a promise with the position of the current recording */ getCurrentPosition(): Promise<any>; /** * Get the duration of an audio file in seconds. If the duration is unknown, it returns a value of -1. * @returns {number} Returns a promise with the duration of the current recording */ getDuration(): number; /** * Starts or resumes playing an audio file. */ play(iosOptions?: { numberOfLoops?: number; playAudioWhenScreenIsLocked?: boolean; }): void; /** * Pauses playing an audio file. */ pause(): void; /** * Releases the underlying operating system's audio resources. This is particularly important for Android, since there are a finite amount of OpenCore instances for media playback. Applications should call the release function for any Media resource that is no longer needed. */ release(): void; /** * Sets the current position within an audio file. * @param {number} milliseconds The time position you want to set for the current audio file */ seekTo(milliseconds: number): void; /** * Set the volume for an audio file. * @param volume {number} The volume to set for playback. The value must be within the range of 0.0 to 1.0. */ setVolume(volume: number): void; /** * Starts recording an audio file. */ startRecord(): void; /** * Stops recording */ stopRecord(): void; /** * Pauses recording */ pauseRecord(): void; /** * Resumes recording */ resumeRecord(): void; /** * Stops playing an audio file. */ stop(): void; }