diff --git a/src/index.ts b/src/index.ts index e08c85e4..b1cb06cd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -80,6 +80,7 @@ import {StatusBar} from './plugins/statusbar'; import {ThreeDeeTouch} from './plugins/3dtouch'; import {Toast} from './plugins/toast'; import {TouchID} from './plugins/touchid'; +import {TextToSpeech} from './plugins/text-to-speech'; import {TwitterConnect} from './plugins/twitter-connect'; import {Vibration} from './plugins/vibration'; import {VideoPlayer} from './plugins/video-player'; @@ -166,6 +167,7 @@ export { StatusBar, TouchID, Transfer, + TextToSpeech, Vibration, WebIntent, Zip @@ -250,6 +252,7 @@ window['IonicNative'] = { Toast: Toast, TouchID: TouchID, Transfer: Transfer, + TextToSpeech: TextToSpeech, TwitterConnect: TwitterConnect, VideoPlayer: VideoPlayer, Vibration: Vibration, diff --git a/src/plugins/text-to-speech.ts b/src/plugins/text-to-speech.ts new file mode 100644 index 00000000..c6c52193 --- /dev/null +++ b/src/plugins/text-to-speech.ts @@ -0,0 +1,47 @@ +import {Plugin, Cordova} from './plugin'; + +export interface TTSOptions { + /** text to speak */ + text: string; + /** a string like 'en-US', 'zh-CN', etc */ + locale?: string; + /** speed rate, 0 ~ 1 */ + rate?: number; +} + +/** + * @name TTS + * @description + * Text to Speech plugin + * + * @usage + * ``` + * import {TTS} from 'ionic-native'; + * + * TTS.speak('Hello World') + * .then(() => console.log('Success')) + * .catch((reason: any) => console.log(reason)); + * + * ``` + */ +@Plugin({ + plugin: 'cordova-plugin-tts', + pluginRef: 'TTS', + repo: 'https://github.com/vilic/cordova-plugin-tts' +}) +export class TextToSpeech { + + /** + * This function speaks + * @param options {string | TTSOptions} Text to speak or TTSOptions + * @return {Promise} Returns a promise that resolves when the speaking finishes + */ + @Cordova({ + successIndex: 1, + errorIndex: 2 + }) + static speak(options: string | TTSOptions): Promise { + return; + } + +}