我想知道如何以编程方式获取设备的 TTS 引擎信息,例如是否安装了任何 TTS 引擎,如果安装了,那么这些是什么以及每个 TTS 引擎支持的不同语言是什么?我必须使用 Android 版本 2.1(api 级别 7)来实现这一点。
请帮我实现这个功能。
问候,
皮克斯
我想知道如何以编程方式获取设备的 TTS 引擎信息,例如是否安装了任何 TTS 引擎,如果安装了,那么这些是什么以及每个 TTS 引擎支持的不同语言是什么?我必须使用 Android 版本 2.1(api 级别 7)来实现这一点。
请帮我实现这个功能。
问候,
皮克斯
您可以通过首先发送结果意图来检查它
Intent intent = new Intent();
intent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(intent, 0);
然后您可以在 onActivityResult 方法中检查是否安装了 TTS 引擎:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 0){
if(resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS){
Toast.makeText(getApplicationContext(),"Already Installed", Toast.LENGTH_LONG).show();
} else {
Intent installIntent = new Intent();
installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
Toast.makeText(getApplicationContext(),"Installed Now", Toast.LENGTH_LONG).show();
}
希望它有效:)
这为您提供了安装在您的 Android 上的 TTS 引擎的列表。
tts = new TextToSpeech(this, this);
for (TextToSpeech.EngineInfo engines : tts.getEngines()) {
Log.d("Engine Info " , engines.toString());
}
要保存您的点击次数:
启动它以检查是否安装了 TTS:
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
然后得到这个结果:
private TextToSpeech mTts;
protected void onActivityResult(
int requestCode, int resultCode, Intent data) {
if (requestCode == MY_DATA_CHECK_CODE) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
// success, create the TTS instance
mTts = new TextToSpeech(this, this);
} else {
// missing data, install it
Intent installIntent = new Intent();
installIntent.setAction(
TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}
这篇官方的Android 博客文章为您提供了检测 TTS 引擎是否已安装并准备好使用的最佳实践,以及有关 TTS 的其他实践。
要检查已安装的 TTS 引擎,您需要首先初始化 TTS 引擎。然后使用返回的 TTS 引擎对象调用该函数getEngines()
以了解是否有任何 TTS 引擎被初始化。
很酷,足够的谈话,这是有效的代码: -
fun initializeEngine(context: Context) {
tts = TextToSpeech(context){ initStatus ->
if (initStatus == TextToSpeech.SUCCESS) {
// TTS engine initialized successfully
}
}
}
fun supportedEnginesList(): List<TextToSpeech.EngineInfo>?{
return tts?.engines?
}