Media

v5.0.2

Contents

Installation

In order to use Ionic Enterprise Edition plugins you should make sure you're using the Ionic Enterprise Cordova CLI as the regular version can have issues with scoped plugins.

npm uninstall -g cordova npm install -g @ionic-enterprise/cordova

Once you've installed the Ionic Enterprise Cordova CLI you can install the plugin.

ionic enterprise register --key=YOURPRODUCTKEY ionic cordova plugin add @ionic-enterprise/media

Index

Enumerations

Classes

Interfaces

Type aliases


Enumerations

MEDIA_ERROR

MEDIA_ERROR:

ABORTED

ABORTED: = 1


DECODE

DECODE: = 3


NETWORK

NETWORK: = 2


SUPPORTED

SUPPORTED: = 4



MEDIA_STATUS

MEDIA_STATUS:

NONE

NONE: = 0


PAUSED

PAUSED: = 3


RUNNING

RUNNING: = 2


STARTING

STARTING: = 1


STOPPED

STOPPED: = 4



Classes

Media

Media:

name: Media

description: This plugin provides the ability to record and play back audio files on a device.

usage:

import { Media, MediaObject } from '@ionic-enterprise/media/ngx';

constructor(private media: Media) { }

...

// Create a Media instance.  Expects path to file or url as argument
// We can optionally pass a second argument to track the status of the media

const file: MediaObject = this.media.create('file.mp3');

// to listen to plugin events:

file.onStatusUpdate.subscribe(status => console.log(status)); // fires when file status changes

file.onSuccess.subscribe(() => console.log('Action is successful'));

file.onError.subscribe(error => console.log('Error!', error));

// play the file
file.play();

// pause the file
file.pause();

// get current playback position
file.getCurrentPosition().then((position) => {
  console.log(position);
});

// get file duration
let duration = file.getDuration();
console.log(duration);

// 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
const file: MediaObject = this.media.create('path/to/file.mp3');

file.startRecord();

file.stopRecord();

Some hints if you are using iOS and recording doesn't work: 1.) Try to use a absolute file path but remove beginning "file://". Then it looks like: /var/mobile/Containers/Data/Application/AF438B8B-7724-4FBB-8E69-083463224FC4/tmp/my_file.m4a Example: this.media.create(this.file.tempDirectory.replace(/^file:\/\//, '') + 'my_file.m4a') 2.) If that's not working, too, create the file before using. Example:

import { Media, MediaObject } from '@ionic-enterprise/media/ngx';
import { File } from '@ionic-native/file/ngx';

...

constructor(private media: Media, private file: File) { }

...

this.file.createFile(this.file.tempDirectory, 'my_file.m4a', true).then(() => {
  let file = this.media.create(this.file.tempDirectory.replace(/^file:\/\//, '') + 'my_file.m4a');
  file.startRecord();
  window.setTimeout(() => file.stopRecord(), 10000);
});

You can find the reasons here: https://github.com/ionic-team/ionic-native/issues/1452#issuecomment-299605906

classes: MediaObject

interfaces: MediaError

create

create(src: string): MediaObject

Open a media file

Parameters:

Name Type Description
src string A URI containing the audio content.

Returns: MediaObject



Interfaces

MediaError

MediaError:

code

● code: number

Error code


message

● message: string

Error message



Type aliases

MediaErrorCallback

Ƭ MediaErrorCallback: function

Type declaration

▸(error: *MediaError*): void

Parameters:

Name Type
error MediaError

Returns: void


MediaStatusUpdateCallback

Ƭ MediaStatusUpdateCallback: function

Type declaration

▸(statusCode: number): void

Parameters:

Name Type
statusCode number

Returns: void


Other Versions