无信号  

以下是语音功能主要代码:

首先,当然是要在手机上安装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()方法

posted on 2013-04-26 15:05  BenXian  阅读(495)  评论(0编辑  收藏  举报