我正在用执行TTS的Nuance SpeechKit编写应用程序。它需要将上下文(从getApplicationContext()
调用)传递到某些函数中。不幸的是,我在日志中收到此错误:ANDROID_CONTEXT parameter is not passed in!!!
让我给出更多背景信息:在主要活动中,它会从按钮打开一个对话框。该对话框调用文本转语音功能。因此,我在主要活动中调用getApplicationContext()
,并使用setter将其作为参数传递给我的DialogFragment
。不幸的是,即使我打电话给安装人员,我也会收到此错误。那可能会出现什么问题?这里有一些代码:
在我的主要活动中:
// Instance variables...
private SpeechKit speechKit;
private Context context;
protected void onCreate(Bundle savedInstanceState) {
...
context = getApplicationContext();
...
this.speechKit = SpeechKit.initialize(context,
"CORRECT_API_KEY",
"sslsandbox.nmdp.nuancemobility.net",
443,
true,
SpeechKitAPIKey);
speechKit.connect();
}
public void invokeDialog() {
...
dialogueFragment.setContext(context);
dialogueFragment.setSpeechKit(speechKit);
...
}
这是对话框片段的代码:
public void setSpeechKit(SpeechKit speechKit) {
this.speechKit = speechKit;
}
private SpeechKit speechKit;
private Context context;
public void setSpeechKit(SpeechKit speechKit) {
this.speechKit = speechKit;
}
public void setContext(Context context) {
this.context = context;
}
// Called when a button is pushed...
public void narrateText(String voice, String phrase) {
Vocalizer vocalizer = speechKit.createVocalizerWithVoice(voice, this, handler);
vocalizer.speakString(phrase, context);
}
现在我不知道为什么会调用这个错误。代码编译得很好。有什么建议吗?
答案 0 :(得分:0)
我遇到了同样的问题,结果证明我的免费帐户已过期(持续90天)。
您可能会发送无效的登录信息。