小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

安卓

 王者歸來525 2012-03-27
現(xiàn)在,隨著移動應(yīng)用的日益普及,移動語音應(yīng)用越來越受到用戶的重視和喜愛,本文將指導(dǎo)用戶如何在Android SDK中使用語音引擎去創(chuàng)建簡單的應(yīng)用。在Android中使用語音引擎其實是很容易的事情,通過若干步驟就可以實現(xiàn)了,盡管其中有些地方在使用中要注意。在本教程中,將一步步直接教讀者如何創(chuàng)建語音應(yīng)用,具體的代碼在文末有下載。

  步驟一 創(chuàng)建Android工程

  我們首先創(chuàng)建一個Android工程,選用的是Android 2.3以上SDK的。

  步驟二 創(chuàng)建用戶界面

  由于我們的例子很簡單,所以只需要往界面中增添若干控件就可以了,我們打開main.xml文件,寫入如下代碼,增加了一個本文框和一個按鈕:

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

  android:text="Enter some text:"

  />

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

  />

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"

  android:text="Speak"

  />

  其中文本框中是輸入要發(fā)音朗讀的文字內(nèi)容。界面如下圖:

  

Android中使用語音引擎入門

  ▲

  步驟三 編寫監(jiān)聽事件

  接下來,我們?yōu)榘粹o添加事件處理,首先要獲得用戶輸入的文字,代碼如下:

  import android.view.View.OnClickListener;

  import android.widget.Button;

  import android.view.View;

  import android.widget.EditText;

  public class SpeakingAndroid extends Activity implements OnClickListener

  {

  //create the Activity

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  Button speakButton = (Button)findViewById(R.id.speak);

  //監(jiān)聽button事件

  speakButton.setOnClickListener(this);

  }

  //onClick事件的響應(yīng)代碼

  public void onClick(View v) {

  //獲得用戶輸入的文字

  EditText enteredText = (EditText)findViewById(R.id.enter);

  String words = enteredText.getText().toString();

  //調(diào)用語音引擎的方法

  speakWords(words);

  }

  }

  步驟四 編寫相關(guān)的語音方法

  首先,要導(dǎo)入相關(guān)的語音引擎包,代碼如下:

  import android.speech.tts.TextToSpeech;

  import android.speech.tts.TextToSpeech.OnInitListener;

  接下來,為了能系統(tǒng)先對運行語音引擎的準備工作進行檢查,因此先要對其運行前的數(shù)據(jù)進行就緒檢查,所以首先聲明一個成員變量,如下:

  private int MY_DATA_CHECK_CODE = 0;

  并且在oncreate方法中,編寫如下代碼:

  Intent checkTTSIntent = new Intent();

  checkTTSIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);

  startActivityForResult(checkTTSIntent, MY_DATA_CHECK_CODE);

  以上代碼的目的為,創(chuàng)建一個Intent,去檢查TTS所需要的數(shù)據(jù)是否準備好,如果準備好的話,則調(diào)用onActivityResult方法,這個方法在下文中會提到。

  步驟五 創(chuàng)建TTS的實例

  在onActivityResult方法中,可以開始創(chuàng)建其TTS語音引擎的實例,代碼如下:

  protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  if (requestCode == MY_DATA_CHECK_CODE) {

  if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {

  myTTS = new TextToSpeech(this, this);

  }

  else {

  Intent installTTSIntent = new Intent();

  installTTSIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);

  startActivity(installTTSIntent);

  }

  }

  }

  當TTS的數(shù)據(jù)就緒數(shù)據(jù)檢查完畢后,將調(diào)用這個方法,其中resultCode為TTS驗證是否通過的標記,如果通過驗證的話,則通過myTTS = new TextToSpeech(this, this);

  創(chuàng)建一個語音TTS實例。如果沒能通過TTS準備就緒的安裝測試,則新聲明一個Intent,將用戶引導(dǎo)到這個安裝TTS引擎的界面中去。

  步驟六 初始化引擎的數(shù)據(jù)

  由于在本程序中實現(xiàn)了OnInitListener接口,因此可以在oninit方法中,對語音引擎進行初始化設(shè)置,比如設(shè)置語言等,首先應(yīng)該導(dǎo)入相關(guān)的類庫,如下:

  import java.util.Locale;

  在oninit方法中寫入如下代碼:

  public void onInit(int initStatus) {

  if (initStatus == TextToSpeech.SUCCESS) {

  myTTS.setLanguage(Locale.US);

  }

  else if (initStatus == TextToSpeech.ERROR) {

  Toast.makeText(this, "Sorry! Text To Speech failed...", Toast.LENGTH_LONG).show();

  }

  }

  這里判斷如果TTS已經(jīng)就緒成功,則調(diào)用setLanguage方法設(shè)置為使用對應(yīng)的語言(這

  里是英文),如果判斷TTS不能準備就緒,則調(diào)用Toast的顯示方法告知用戶。

  步驟七 讓TTS說話

  在準備好以上步驟后,最后一步就是讓TTS開口說話了,在speakWords方法中,寫入如下代碼即可

  private void speakWords(String speech) {

  myTTS.speak(speech, TextToSpeech.QUEUE_FLUSH, null);

  }

  其中的speak方法中有很多參數(shù)可以選用,具體請參考Android文檔,這里選用了

  參數(shù)TextToSpeech.QUEUE_FLUSH,如果想讓TTS語音引擎連續(xù)不斷地朗讀,可以使用

  myTTS.speak(speech, TextToSpeech.QUEUE_ADD, null)的參數(shù)。如果要求應(yīng)用不再進行朗讀,則可以添加一句:

  myTTS.shutdown();

  但除非是明確用戶不在需要應(yīng)用進行朗讀,否則如果要連續(xù)讓系統(tǒng)朗讀的話,則不應(yīng)該添加這句代碼。

  小結(jié)

  本文簡單一步步地介紹了如何在Android SDK中使用語音引擎TTS,讀者可以通過這個例子,創(chuàng)建更多豐富的語音應(yīng)用。 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多