mtl-js-sdk
Version:
ynf-fw-mtl-api
113 lines (109 loc) • 3.49 kB
JavaScript
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
});
}