java - 突出显示 android 中文本到语音阅读器所说的单词的错误
问题描述
我没有得到想要的输出。我的代码随后将整个字符串打印为一个整体,而不是打印 android 文本到语音阅读器所说的部分。请帮我澄清我的错误。请尽快回复,或者任何人有任何关于它的 github repo,然后请提供链接。我对在 android studio 中经常发生这种情况感到非常沮丧。
这是我来自 android studio 的 MainActivity.java 代码....
package com.example.ttsreader;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.graphics.Color;
import android.os.Handler;
import android.os.Message;
import android.speech.tts.TextToSpeech;
import android.os.Bundle;
import android.text.Html;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Locale;
import static android.widget.Toast.*;
public class MainActivity extends AppCompatActivity {
private TextToSpeech textToSpeech;
private Button btn;
private EditText editText;
private TextView txtView;
String x="";
String sss;
private static final String TAG = "UpdateUI";
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
Bundle b = msg.getData();
String key = b.getString("timeKey");
tv.setText(key);
}
};
private Runnable separateThread = new Runnable() {
@Override
public void run() {
updateUI();
}
};
private TextView tv;
private String getTime() {
Calendar calendar = Calendar.getInstance();
DateFormat formatTime = DateFormat.getTimeInstance();
return formatTime.format(calendar.getTime());
}
private void updateUI(){
long endTime = System.currentTimeMillis() + 5 * 1000;
txtView.setText(x);
}
String ss;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
txtView=(TextView)findViewById(R.id.textView3);
editText = (EditText) findViewById(R.id.et);
textToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int ttsLang = textToSpeech.setLanguage(Locale.UK);
if (ttsLang == TextToSpeech.LANG_MISSING_DATA
|| ttsLang == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "The Language is not supported!");
} else {
Log.i("TTS", "Language Supported.");
}
Log.i("TTS", "Initialization success.");
} else {
makeText(getApplicationContext(), "TTS Initialization failed!", LENGTH_SHORT).show();
}
}
});
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
String data = editText.getText().toString();
try{
String arr[]=data.split("\\s");
for(final String s:arr)
{
x+=" ";
x+=s;
sss=s;
Thread t = new Thread(separateThread);
int speechStatus = textToSpeech.speak(sss, TextToSpeech.QUEUE_FLUSH, null);
if (speechStatus == TextToSpeech.ERROR) {
}
t.start();
Thread.sleep(300);
/* txtView.setText(x);
int speechStatus = textToSpeech.speak(s, TextToSpeech.QUEUE_ADD, null);
if (speechStatus == TextToSpeech.ERROR) {
}*/
}
}
catch(Exception e)
{
}
}
});
}
/* public void dospeak(final String s,String data)
{
String newString = data.replaceAll(s, "<font color='red'>"+s+"</font>");
ss=newString;
//extView.setBackgroundColor(Color.BLUE);
}
*/
}
解决方案
推荐阅读
- ruby-on-rails - Rails 中的“未找到。身份验证通路(Azure)”
- google-sheets - 尝试将带有日期的各个列连接到单独列上的单元格中
- asp.net - 在 ASP.NET 中将 JSON 更改为 DataTable 时出错
- python - Pandas DataFrame - 将行拆分为 n 个窗口,将窗口移动 m 个元素,找到平均值
- tizen - 如何绘制*弯曲*线?
- teamcity - TeamCity Kotlin DSL - 在 BuildType 中使用函数选项
- ios - iOS 12:无法实例化名为 WKWebView 的类
- ruby-on-rails-5 - Rails Active Storage - 在浏览器中预览所有音频/视频文件
- javascript - 我的反应电子商务应用程序中的过滤器功能有问题
- javascript - 如何在 VSCode 中设置 pathMapping 以调试 Snowpack 应用程序