阅读启动活动中的TextToSpeeh



我在Android Studio中创建了一个启动屏幕。现在我想要一个文本到语音的功能来说:

Done by Me

当启动屏幕打开时,应该会发生这种情况。我该怎么做?

这是我到目前为止的程序:

public class CinemaList extends Activity  {
private static int SPLASH_TIME_OUT = 4000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent homeIntent = new Intent(CinemaList.this, MovieList.class);
startActivity(homeIntent);
finish();
}
}, SPLASH_TIME_OUT);
}
}

我希望你喜欢学习Android开发。可以按如下方式进行:

public class SplashActivity extends AppCompatActivity implements TextToSpeech.OnInitListener  {
private TextToSpeech mTts;
private static final String TAG = MainActivity.class.getName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTts = new TextToSpeech(this, this);
}
@Override
protected void onPause() {
if(mTts != null){
mTts.stop();
mTts.shutdown();
}
super.onPause();
}
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
mTts.setOnUtteranceProgressListener(new UtteranceProgressListener() {
@Override
public void onDone(String utteranceId) {
Log.d(TAG, "Done:  " + utteranceId);
Intent homeIntent = new Intent(CinemaList.this, MovieList.class);
startActivity(homeIntent);
}

@Override
public void onError(String utteranceId) {
Log.e(TAG, "Error:  " + utteranceId);
}
@Override
public void onStart(String utteranceId) {
Log.i(TAG, "Started:  " + utteranceId);
}
});
mTts.speak("Done by ME!", TextToSpeech.QUEUE_ADD, null);
} else {
Log.e(TAG, "Failed");
}
}
}

演讲结束后,我冒昧地开始了"电影院名单"活动。但是,如果您愿意,您可以继续使用处理程序。

此外,与其显式调用finish((,我建议将noHistory标志添加到清单中的SplashActivity中:

<activity
android:name=".SplashActivity"
android:noHistory="true"/>

noHistory标志确保按下back时Activity不会出现。

noHistory与finish((-哪个是首选?

最新更新