EIIE♬ walp_wsd
关注数: 45 粉丝数: 102 发帖数: 2,099 关注贴吧数: 119
求助!学习TTS,保存出错 是什么问题? 朗读可以,保存就出错。 public class MainActivity extends Activity { private EditText mEditText = null; private Button readButton = null; private Button saveButton = null; private CheckBox mCheckBox = null; private TextToSpeech mTextToSpeech=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mEditText = (EditText)this.findViewById(R.id.edittext); readButton = (Button)this.findViewById(R.id.rbutton); saveButton = (Button)this.findViewById(R.id.sbutton); mCheckBox = (CheckBox)this.findViewById(R.id.checkbox); //实例并初始化TTS对象 mTextToSpeech=new TextToSpeech(this, new TextToSpeech.OnInitListener() { @Override public void onInit(int status) { if (status==TextToSpeech.SUCCESS) { //设置朗读语言 int supported=mTextToSpeech.setLanguage(Locale.US); if ((supported!=TextToSpeech.LANG_AVAILABLE)&&(supported!=TextToSpeech.LANG_COUNTRY_AVAILABLE)) { Toast.makeText(MainActivity.this, "不支持当前语言!", 1).show(); } } } }); //朗读监听按钮 readButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { //朗读EditText里的内容 mTextToSpeech.speak(mEditText.getText().toString(), TextToSpeech.QUEUE_FLUSH, null); } }); //保存按钮监听 saveButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { //将EditText里的内容保存为语音文件 int r = mTextToSpeech.synthesizeToFile(mEditText.getText().toString(), null, "/mnt/sdcard/speak.wav"); if (r==TextToSpeech.SUCCESS) { Toast.makeText(MainActivity.this, "保存成功!", 1).show(); } } }); //EditText内容变化监听 mEditText.addTextChangedListener(mTextWatcher); } @Override protected void onDestroy() { super.onDestroy(); if (mTextToSpeech!=null) { mTextToSpeech.shutdown();//关闭TTS } } private TextWatcher mTextWatcher = new TextWatcher(){ @Override public void afterTextChanged(Editable s) { //如果是边写边读 if(mCheckBox.isChecked()&&(s.length()!=0)){ //获得EditText的所有内容 String t = s.toString(); mTextToSpeech.speak(t.substring(s.length()-1), TextToSpeech.QUEUE_FLUSH, null); } } @Override public void beforeTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } }; }
1 下一页