引用

在项目的.yaml文件下添加以下代码

svui_plugin:
  hosted:
    name: svui_plugin
    url: http://172.17.254.117:4000
  version: 0.0.30

并在最外层的Android项目的build.gradle文件下添加如下代码到defaultConfig下

ndk {
    abiFilters 'armeabi', 'armeabi-v7a'
}
defaultConfig {
    applicationId "com.roobo.svui_plugin_example"
    minSdkVersion 16
    targetSdkVersion 28
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
    //指定CPU类型
    ndk {
        abiFilters 'armeabi', 'armeabi-v7a'
    }
}

如需混淆,则需要在最外层的Android项目的混淆文件中添加如下代码

-keep class com.roobo.svui_plugin.** {*;}

-keep class com.roobo.svui.** {*;}

-keep class com.roobo.VQE{*;}

-keepclasseswithmembernames class * {
    native <methods>;
}

#第三方jar包
# FastJson
-dontwarn com.alibaba.fastjson.**
-keep class com.alibaba.fastjson.** { *; }
# nuance
-dontwarn com.nuance.**
-keep class com.nuance.** { *; }
-keepattributes Signature
-keepattributes *Annotation*

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep,allowobfuscation @interface android.support.annotation.Keep

-keep @android.support.annotation.Keep class *
-keepclassmembers class * {
    @android.support.annotation.Keep *;
}

-keepattributes *Annotation*
-keep @android.support.annotation.Keep class **{
    @android.support.annotation.Keep <fields>;
    @android.support.annotation.Keep <methods>;
}

使用

初始化

两种初始化方法,任选其一。

/// 初始化方法
/// @param info  账户信息
/// @param listener 初始化结果监听(可选参数)
/// @param isTest  true:测试环境 false:线上环境 默认线上(可选参数)
/// @param player  音频播放器 TTS时使用(可选参数)
void init(SdkAccountInfo info,
    {SVUIInitListener listener, bool isTest, IPlayer player})
/// 初始化方法
/// @param info  账户信息
/// @param listener 初始化结果监听(可选参数)
/// @param isTest  true:测试环境 false:线上环境 默认线上(可选参数)
/// @param player  音频播放器 TTS时使用(可选参数)
void initWithParamInfo(AIParamInfo info,
    {SVUIInitListener listener, bool isTest, IPlayer player})

口语评测

///口语评测
///@param  text  想要评测的内容 可以是句子
///@param  listener  评测结果监听  回调结果包含用户回答录音地址、总分、具体单词得分等
@deprecated //please use startOralEvaluateWithData instead
void startOralEvaluate(String text, OralEvluateListener listener)
  ///口语评测
  ///@param  data  使用OralDataBuilder构建
  ///@param  listener  评测结果监听  回调结果包含用户回答录音地址、总分、具体单词得分等
  void startOralEvaluateWithData(
      OralData data, OralEvluateListener listener) 

问答

///问答
///@param  lessionId  课程Id
///@param  dialogId   对话Id
///@param  listener   问答结果监听  回调结果包含用户回答录音地址、action等
///当用户答对时action为具体的answerId,一个问题可以有多个answer,answer在ecps中配置
///当action为空时,代表用户答错
void startQA(int lessionId, String dialogId, QAListener listener)

停止录音

///停止录音 用于提前停止口语评测和问答的录音(问答和口语评测会在有结果时主动停止录音)
///@param  listener 结果回调(可选参数)
void stopCapture({SVUIStopListener listener}) 

释放

///释放资源 目前仅释放音频播放器资源
void release() 

TTS

///文字转语音合成接口 会返回一个合成后的音频文件的URL
///@param  text  要合成的文字
///@param  language 目前支持普通话、英语、粤语(可选参数,如果不传值 会默认中文为普通话)
///@param  listener  合成结果回调  结果为音频URL(可选参数)
@deprecated //please use speechSynthesisWithLanguage instead
void speechSynthesis(String text,
    {String language, SpeechSynthesisListener listener})
  ///文字转语音合成接口 会返回一个合成后的音频文件的URL
  ///@param  text  要合成的文字
  ///@param  language 语言
  ///@param  listener  合成结果回调  结果为音频URL
  void speechSynthesisWithLanguage(String text, String language,
      SpeechSynthesisListener listener)
///TTS 会直接把传入的文字作为音频播放
///@param  text  要合成的文字
///@param  language 目前支持普通话、英语、粤语(可选参数,如果不传值 会默认中文为普通话)
///@param  listener  播放状态监听
@deprecated //please use speakWithLanguage instead
void speak(String text, {String language, PlayListener listener}) 
  ///TTS 会直接把传入的文字作为音频播放
  ///@param  text  要合成的文字
  ///@param  language 语言
  ///@param  listener  播放状态监听
  void speakWithLanguage(String text, String language,
      {PlayListener listener}) 
///停止TTS音频
void stopSpeak()
///TTS播放状态
bool isSpeaking()
///设置TTS播放器
void setTTSPlayer(IPlayer player) 
///获取TTS播放器
IPlayer getTTSPlayer()
///TTS可选语言
class Language {
  static const String ENGLISH = "en";
  static const String CHINESE = "zh";
  static const String JAPANESE = "jp";//目前无法使用
  static const String CANTONESE = "yue-CHN";
}

其它

///清除所有用户录音的.wav文件
static void clearAudioRecord()
///获取当前所有用户录音的.wav文件大小(单位:bite)
static Future<int> getAudioRecordSize() 
///设置log级别
///@param  level @LogLevel
static void setLogLevel(int level)

Libraries

account
config
error
evaluatebean
iplayer
itts
language
loglevel
oral_data
PlayerException
qaresult
svui_listener
svui_plugin
svui_plugin_web_implement
tts_result
ttslistener
util