2016-08-16 12:53:15 +08:00
|
|
|
import { Plugin, Cordova } from './plugin';
|
2016-08-15 15:58:20 +08:00
|
|
|
/**
|
|
|
|
* @name NativeAudio
|
|
|
|
* @description Native Audio Playback
|
|
|
|
* @usage
|
|
|
|
* ```typescript
|
|
|
|
* import {NativeAudio} from 'ionic-native';
|
|
|
|
*
|
|
|
|
* NativeAudio.preloadSimple('uniqueId1', 'path/to/file.mp3').then(onSuccess, onError);
|
|
|
|
* NativeAudio.preloadComplex('uniqueId2', 'path/to/file2.mp3', 1, 1, 0).then(onSuccess, onError);
|
|
|
|
*
|
|
|
|
* NativeAudio.play('uniqueId1').then(onSuccess, onError);
|
|
|
|
* NativeAudio.loop('uniqueId2').then(onSuccess, onError);
|
|
|
|
*
|
|
|
|
* NativeAudio.setVolumeForComplexAsset('uniqueId2', 0.6).then(onSuccess,onError);
|
|
|
|
*
|
|
|
|
* NativeAudio.stop('uniqueId1').then(onSuccess,onError);
|
|
|
|
*
|
|
|
|
* NativeAudio.unload('uniqueId1').then(onSuccess,onError);
|
|
|
|
*
|
|
|
|
* ```
|
|
|
|
*/
|
|
|
|
@Plugin({
|
2016-10-18 09:33:17 +08:00
|
|
|
name: 'NativeAudio',
|
2016-08-15 15:58:20 +08:00
|
|
|
plugin: 'cordova-plugin-nativeaudio',
|
2016-08-23 09:45:37 +08:00
|
|
|
pluginRef: 'plugins.NativeAudio',
|
2016-08-15 15:58:20 +08:00
|
|
|
repo: 'https://github.com/floatinghotpot/cordova-plugin-nativeaudio'
|
|
|
|
})
|
|
|
|
export class NativeAudio {
|
|
|
|
/**
|
|
|
|
* Loads an audio file into memory. Optimized for short clips / single shots (up to five seconds). Cannot be stopped / looped.
|
|
|
|
* @param id {string} unique ID for the audio file
|
|
|
|
* @param assetPath {string} the relative path or absolute URL (inluding http://) to the audio asset.
|
|
|
|
* @returns {Promise<any>}
|
|
|
|
*/
|
|
|
|
@Cordova()
|
|
|
|
static preloadSimple(id: string, assetPath: string): Promise<any> {return; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Loads an audio file into memory. Optimized for background music / ambient sound. Uses highlevel native APIs with a larger footprint. (iOS: AVAudioPlayer). Can be stopped / looped and used with multiple voices. Can be faded in and out using the delay parameter.
|
|
|
|
* @param id {string} unique ID for the audio file
|
|
|
|
* @param assetPath {string} the relative path or absolute URL (inluding http://) to the audio asset.
|
|
|
|
* @param volume {number} the volume of the preloaded sound (0.1 to 1.0)
|
|
|
|
* @param voices {number} the number of multichannel voices available
|
|
|
|
* @param delay {number}
|
|
|
|
* @returns {Promise<any>}
|
|
|
|
*/
|
|
|
|
@Cordova()
|
|
|
|
static preloadComplex(id: string, assetPath: string, volume: number, voices: number, delay: number): Promise<any> {return; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Plays an audio asset
|
|
|
|
* @param id {string} unique ID for the audio file
|
|
|
|
* @param completeCallback {Function} callback to be invoked when audio is done playing
|
|
|
|
*/
|
|
|
|
@Cordova({
|
|
|
|
successIndex: 1,
|
|
|
|
errorIndex: 2
|
|
|
|
})
|
|
|
|
static play(id: string, completeCallback: Function): Promise<any> {return; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Stops playing an audio
|
|
|
|
* @param id {string} unique ID for the audio file
|
|
|
|
*/
|
|
|
|
@Cordova()
|
|
|
|
static stop(id: string): Promise<any> {return; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Loops an audio asset infinitely, this only works for complex assets
|
|
|
|
* @param id {string} unique ID for the audio file
|
|
|
|
* @return {Promise<any>}
|
|
|
|
*/
|
|
|
|
@Cordova()
|
|
|
|
static loop(id: string): Promise<any> {return; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Unloads an audio file from memory
|
|
|
|
* @param id {string} unique ID for the audio file
|
|
|
|
*/
|
|
|
|
@Cordova()
|
|
|
|
static unload(id: string): Promise<any> {return; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Changes the volume for preloaded complex assets.
|
|
|
|
* @param id {string} unique ID for the audio file
|
|
|
|
* @param volume {number} the volume of the audio asset (0.1 to 1.0)
|
|
|
|
*/
|
|
|
|
@Cordova()
|
|
|
|
static setVolumeForComplexAsset(id: string, volume: number): Promise<any> {return; }
|
|
|
|
|
|
|
|
}
|