android自学之TextToSpeech例子实现将文字转化为语音功能

通过自学apidemo,学习了将文字转化为语音。下面是例子

package com.example.texttospeechexcercise;

import java.util.Locale;
import java.util.Random;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import android.speech.tts.TextToSpeech;
import android.text.StaticLayout;
public class MainActivity extends Activity implements TextToSpeech.OnInitListener{
	 
	String[] words=new String[]{"hello","dog","cat","bye"};
	//static final Random RANDOM=new Random();
	private TextToSpeech tSpeech;
	private Button button;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button=(Button) findViewById(R.id.button1);
		tSpeech=new TextToSpeech(getApplicationContext(), this);
		button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				sayHello();
			}
		});
		
	}

	private void sayHello() {
		// TODO Auto-generated method stub
		int size=words.length;
		//返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
		//nextInt 的常规协定是,伪随机地生成并返回指定范围中的一个 int 值。所有可能的 n 个 int 值的生成概率(大致)相同。
		int i=new Random().nextInt(size);
		String word=words[i];
		tSpeech.speak(word,  TextToSpeech.QUEUE_FLUSH, null);
	}
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		if (tSpeech!=null) {
			
			tSpeech.stop();
			tSpeech.shutdown();
		}
		
		super.onDestroy();
	}

	@Override
	public void onInit(int status) {
		// TODO Auto-generated method stub
		if (status==TextToSpeech.SUCCESS) {
		int result=tSpeech.setLanguage(Locale.US);	
		if (result==TextToSpeech.LANG_MISSING_DATA||result==TextToSpeech.LANG_NOT_SUPPORTED) {
			Toast.makeText(getApplicationContext(), "Language is not available.",1000).show();
		}
		else {
			button.setEnabled(true);
			sayHello();
		}
		}else {
			Toast.makeText(getApplicationContext(), "init failed", 1000).show();
		}
		}
	}

	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值