1、activity_main.XML 中的内容如下
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/TTS引擎状态" android:text="Hello World!" /> <EditText android:id="@+id/edt待朗读文字" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入语音合成的文字" android:text="现在是36.24摄氏度" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn语音合成" android:text="TTS语音合成" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn语音设置" android:text="TTS语音设置" /> </LinearLayout>
2、MainActivity的内容如下 package com.example.tts import android.content.Intent import android.os.Bundle import android.speech.tts.TextToSpeech import android.widget.EditText import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* import java.util.* class MainActivity : AppCompatActivity() { // 延迟初始化TTS对象 lateinit var TTS对象: TextToSpeech override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) 初始化TTS() //当单击[btn语音合成]按钮时 朗读具体内容 btn语音合成.setOnClickListener { view -> TTS朗读(edt待朗读文字.text.toString()) } //当单击[btn语音设置]按钮时 打开语音设置 Activity btn语音设置.setOnClickListener { view -> TTS语音设置() } } fun 初始化TTS() { //初始化TTS TTS对象 = TextToSpeech(this, TextToSpeech.OnInitListener { if (it == TextToSpeech.SUCCESS) { val i = TTS对象.setLanguage(Locale.CHINESE) //设置语言 if (i == TextToSpeech.LANG_MISSING_DATA || i == TextToSpeech.LANG_NOT_SUPPORTED) { TTS对象.setSpeechRate(1.0f) TTS引擎状态.text = "设置中文语音失败" } else { } } else { TTS引擎状态.text = "初始化失败" } }) } fun TTS朗读(待朗读文字: String) { if (待朗读文字 != "") { TTS对象.speak(待朗读文字, TextToSpeech.QUEUE_ADD, null) } } fun TTS语音设置(){ var intent = Intent("com.android.settings.TTS_SETTINGS") startActivity(intent) } }