Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android進階:Google自帶語音播放功能實現

Android進階:Google自帶語音播放功能實現

編輯:Android開發實例

在Android 中使用語音播放功能 只需要使用類 TextToSpeech ,該類實現了很多關於語音的功能,使用該類必須為其設置語言,現在支持五種語言,杯具的是不支持中文

 

實現很簡單 不過首先要安裝語言包 這個在設置--》語音輸入和輸出設置--》文字轉語音設置

 

如下圖

 

 

 

左邊圖中 安裝語音數據  我這裡已經安裝成功了 所以是灰色的 如果沒有安裝這裡就可以點 其他地方都是灰色的

 

安裝文件4.28M  下載安裝完成後就可以選擇語言了 右圖所示的五種語言 沒有中文啊

 

下面來看實現 很簡單

 


 

首先是layout文件:

 

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7. <EditText    
  8.     android:id="@+id/EditText01" 
  9.     android:layout_width="fill_parent"   
  10.     android:text="I hope so, because it's time to wake up." 
  11.     android:layout_height="wrap_content"   
  12.     /> 
  13. <Button    
  14.     android:id="@+id/Button01" 
  15.     android:text="開始播放" 
  16.     android:layout_width="fill_parent"   
  17.     android:layout_height="wrap_content"   
  18.     /> 
  19. </LinearLayout> 

 

就是播放EditText中的內容

 

Acitivity中

 

 

  1. import java.util.Locale;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.speech.tts.TextToSpeech;  
  5. import android.speech.tts.TextToSpeech.OnInitListener;  
  6. import android.util.Log;  
  7. import android.view.View;  
  8. import android.view.View.OnClickListener;  
  9. import android.widget.Button;  
  10. import android.widget.EditText;  
  11. public class VoisePlayDemo extends Activity {  
  12.     private TextToSpeech mSpeech;  
  13.     private Button btn;  
  14.     private EditText mEditText;  
  15.     @Override 
  16.     public void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         setContentView(R.layout.main);  
  19.         btn = (Button) findViewById(R.id.Button01);  
  20.         mEditText = (EditText) findViewById(R.id.EditText01);  
  21.         btn.setEnabled(false);  
  22.         //創建TextToSpeech對象   
  23.         mSpeech = new TextToSpeech(this, new OnInitListener() {  
  24.             @Override 
  25.             public void onInit(int status) {  
  26.                 if (status == TextToSpeech.SUCCESS) {  
  27.                     int result = mSpeech.setLanguage(Locale.US);  
  28.                     if (result == TextToSpeech.LANG_MISSING_DATA  
  29.                             || result == TextToSpeech.LANG_NOT_SUPPORTED) {  
  30.                         Log.e("bb", "not use");  
  31.                     } else {  
  32.                         btn.setEnabled(true);  
  33.                     }  
  34.                 }  
  35.             }  
  36.         });  
  37.         btn.setOnClickListener(new OnClickListener() {  
  38.             @Override 
  39.             public void onClick(View v) {  
  40.                 mSpeech.speak(mEditText.getText().toString(),  
  41.                         TextToSpeech.QUEUE_FLUSH, null);  
  42.             }  
  43.         });  
  44.     }  
  45.     @Override 
  46.     protected void onDestroy() {  
  47.         if (mSpeech != null) {  
  48.             mSpeech.stop();  
  49.             mSpeech.shutdown();  
  50.         }  
  51.         super.onDestroy();  
  52.     }  

 

通過創建TextToSpeech類的實例 並在 onInit 初始化方法內判斷語音加載是否成功 確實很簡單了

 

就是不知道什麼時候可以支持中文啊

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved