fix: aiassist register

This commit is contained in:
wangcongtao
2020-01-20 11:13:50 +08:00
parent de2da9e7e5
commit 988ab48045
2 changed files with 30 additions and 11 deletions

2
.idea/misc.xml generated
View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="JDK" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
</project>

View File

@@ -38,14 +38,19 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack {
mVoiceClient.unRegisterCustomWakeupCmd( cmd );
}
}
mVoiceMap.clear();
mQAndAMap.clear();
mVoiceClient.release();
mSpeakVoiceMap.clear();
sInstance = null;
}
private final VoiceClient mVoiceClient;
// 免唤醒指令
private Map< String, List< IMogoVoiceCmdCallBack > > mCmdMap = new HashMap<>();
private Map< String, IMogoVoiceCmdCallBack > mVoiceMap = new HashMap<>();
// 问答指令
private Map< String, IMogoVoiceCmdCallBack > mQAndAMap = new HashMap<>();
// 单独的语音播放
private Map< String, IMogoVoiceCmdCallBack > mSpeakVoiceMap = new HashMap<>();
private AIAssist( Context context ) {
// private constructor
@@ -70,7 +75,7 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack {
@Override
public void onCmdAction( String speakText ) {
IMogoVoiceCmdCallBack cmdCallBack = mVoiceMap.remove( speakText );
IMogoVoiceCmdCallBack cmdCallBack = mQAndAMap.remove( speakText );
if ( cmdCallBack != null ) {
cmdCallBack.onCmdAction( speakText );
}
@@ -78,7 +83,7 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack {
@Override
public void onCmdCancel( String speakText ) {
IMogoVoiceCmdCallBack cmdCallBack = mVoiceMap.remove( speakText );
IMogoVoiceCmdCallBack cmdCallBack = mQAndAMap.remove( speakText );
if ( cmdCallBack != null ) {
cmdCallBack.onCmdCancel( speakText );
}
@@ -86,7 +91,14 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack {
@Override
public void onSpeakEnd( String speakText ) {
IMogoVoiceCmdCallBack callBack = mVoiceMap.remove( speakText );
if ( mQAndAMap.containsKey( speakText ) ) {
IMogoVoiceCmdCallBack cmdCallBack = mQAndAMap.get( speakText );
if ( cmdCallBack != null ) {
cmdCallBack.onSpeakEnd( speakText );
return;
}
}
IMogoVoiceCmdCallBack callBack = mSpeakVoiceMap.remove( speakText );
if ( callBack != null ) {
callBack.onSpeakEnd( speakText );
}
@@ -94,7 +106,14 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack {
@Override
public void onSpeakSelectTimeOut( String speakText ) {
IMogoVoiceCmdCallBack callBack = mVoiceMap.remove( speakText );
if ( mQAndAMap.containsKey( speakText ) ) {
IMogoVoiceCmdCallBack cmdCallBack = mQAndAMap.get( speakText );
if ( cmdCallBack != null ) {
cmdCallBack.onSpeakSelectTimeOut( speakText );
return;
}
}
IMogoVoiceCmdCallBack callBack = mSpeakVoiceMap.remove( speakText );
if ( callBack != null ) {
callBack.onSpeakSelectTimeOut( speakText );
}
@@ -107,7 +126,7 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack {
*/
public void speakTTSVoice( String text, IMogoVoiceCmdCallBack callBack ) {
try {
mVoiceMap.put( text, callBack );
mSpeakVoiceMap.put( text, callBack );
mVoiceClient.speakDefault( text );
} catch ( Exception e ) {
}
@@ -122,7 +141,7 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack {
*/
public void speakTTSVoice( String text, VoicePreemptType type, IMogoVoiceCmdCallBack callBack ) {
try {
mVoiceMap.put( text, callBack );
mSpeakVoiceMap.put( text, callBack );
mVoiceClient.speakTypeText( text, type.getPreemptType() );
} catch ( Exception e ) {
}
@@ -134,7 +153,7 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack {
* @param tts 播报内容
*/
public void speakQAndACmd( String tts, IMogoVoiceCmdCallBack callBack ) {
mVoiceMap.put( tts, callBack );
mQAndAMap.put( tts, callBack );
mVoiceClient.speakTtsAndRegistCmd( tts );
}
@@ -146,7 +165,7 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack {
* @param cancelCmds 取消命令唤醒词
*/
public void speakQAndACmd( String tts, String[] okCmds, String[] cancelCmds, IMogoVoiceCmdCallBack callBack ) {
mVoiceMap.put( tts, callBack );
mQAndAMap.put( tts, callBack );
mVoiceClient.speakTtsAndRegistCmd( tts, okCmds, cancelCmds );
}