UNPKG

mtl-js-sdk

Version:

ynf-fw-mtl-api

113 lines (109 loc) 3.49 kB
import {invokeSuccess, invokeFail} from '../callback' import {requestPermission} from '../permission' import {execUpesnBridgeify, canExecUpesnBridge} from '../bridge/index' export function startSpeechSyn(param = {}) { let obj = api.require('mtlIFlyVoice'); if (!obj) { if (canExecUpesnBridge()) { execUpesnBridgeify('startSpeechSyn', param); return; } invokeFail(param, {msg:'module mtlIFlyVoice not added'}); return; } obj.startSpeechSyn(param, function(ret, err){ if (ret && ret.status) { invokeSuccess(param, ret); } else { invokeFail(param, err); } }); } export function stopSpeechSyn(param = {}) { let obj = api.require('mtlIFlyVoice'); if (!obj) { if (canExecUpesnBridge()) { execUpesnBridgeify('stopSpeechSyn', param); return; } invokeFail(param, {msg:'module mtlIFlyVoice not added'}); return; } obj.stopSpeechSyn(param, function(ret, err){ if (ret) { invokeSuccess(param, ret); } else { invokeFail(param, err); } }); } export function translateVoice(param = {}) { let obj = api.require('mtlIFlyVoice'); if (!obj) { if (canExecUpesnBridge()) { let {localId, isShowProgressTips = 1} = param; execUpesnBridgeify('translateVoice', { ...param, bytes: localId, isShowUI: isShowProgressTips ? true : false, success: function(res) { invokeSuccess(param, {translateResult: res.text}); } }); return; } invokeFail(param, {msg:'module mtlIFlyVoice not added'}); return; } requestPermission({ list:['storage'], success:function(){ api.require('trans').saveFile({ base64Str:param.localId, filePath:'cache://', fileName:'tmp.mp3' }, function(ret, err){ if (ret && ret.status) { let filePath = 'cache://tmp.mp3'; param.localId = filePath; obj.translateVoice(param, function(ret1, err1){ if (ret1 && ret1.status) { invokeSuccess(param, ret1); let fs = api.require('fs'); fs && fs.removeSync({path:filePath}); } else { invokeFail(param, err1); } }); } else { invokeFail(param, err); } }); }, fail:param.fail }); } export function voiceToText(param = {}) { let obj = api.require('mtlIFlyVoice'); if (!obj) { if (canExecUpesnBridge()) { execUpesnBridgeify('voiceToText', param); return; } invokeFail(param, {msg:'module mtlIFlyVoice not added'}); return; } requestPermission({ list:['microphone'], success:function(){ obj.voiceToText(param, function(ret, err){ if (ret && ret.status) { invokeSuccess(param, ret); } else { invokeFail(param, err); } }); }, fail:param.fail }); }