以下是语音功能主要代码:
首先,当然是要在手机上安装tts语音引擎包,然后安装tts语音中文包,在设置语音里找到引擎设置、语音设置:
讯飞公司为什么在以上界面设了我的一朋友名字“晓燕”上去呀,O(∩_∩)O哈哈~
讯飞公司为什么在以上界面设了我的一朋友名字“晓燕”上去呀,O(∩_∩)O哈哈~
设好之后:
权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> <uses-permission android:name="android.permission.SEND_SMS"></uses-permission> <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
主要代码:.java :
package com.xmb.test1; import java.util.Locale; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.OnInitListener; import android.telephony.TelephonyManager; import android.util.Log; /** activity **/ public class MainActivity extends Activity implements OnInitListener{ TextToSpeech tts; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); tts=new TextToSpeech(this,this); //tts.speak("i like English", TextToSpeech.QUEUE_FLUSH, null); Intent intent =new Intent(); intent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); startActivityForResult(intent,0); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub if(requestCode==0){ switch(resultCode){ case TextToSpeech.Engine.CHECK_VOICE_DATA_PASS: Log.i("out", "ok"); break; case TextToSpeech.Engine.CHECK_VOICE_DATA_BAD_DATA: Log.i("out", "bad"); break; case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_DATA: Log.i("out", "miss"); break; case TextToSpeech.Engine.CHECK_VOICE_DATA_FAIL: Log.i("out", "fail"); break; case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_VOLUME: Log.i("out", "missing"); break; } } super.onActivityResult(requestCode, resultCode, data); } @Override public void onInit(int status) { // TODO Auto-generated method stub int result = 0; if(status==TextToSpeech.SUCCESS){ result = tts.setLanguage(Locale.UK); Log.i("out","result support ok!"); } if(result==TextToSpeech.LANG_MISSING_DATA||result==TextToSpeech.LANG_NOT_SUPPORTED){ Log.i("out","result no support!"); } tts.speak("i like English and i like Android", TextToSpeech.QUEUE_ADD, null); } }
初始化TextToSpeech时候,就会调用onInit()方法