91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中如何使用TextToSpeech

發布時間:2021-09-10 11:42:50 來源:億速云 閱讀:143 作者:小新 欄目:開發技術

這篇文章主要介紹Android中如何使用TextToSpeech,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

APP初稿如圖:

Android中如何使用TextToSpeech

實現

1.初始化語音。這是一個異步操作。初始化完成后調用oninitListener(第二個參數)。

TextToSpeech mTts = new TextToSpeech(this, this);

2.實現TextToSpeech.OnInitListener

注意:語言可能不可用。

// 實現TextToSpeech.OnInitListener.
     public void onInit(int status) {
         if (status == TextToSpeech.SUCCESS) {
             //設置首選語言為中文,注意,語言可能是不可用的,結果將指示此
             int result = mTts.setLanguage(Locale.CHINA);
             if (result == TextToSpeech.LANG_MISSING_DATA ||
                 result == TextToSpeech.LANG_NOT_SUPPORTED) {
                 //語言數據丟失或不支持該語言。
                 Log.e(TAG, "語言數據丟失或不支持該語言");
             } else {
                 //檢查文檔中其他可能的結果代碼。
                 // 例如,語言可能對區域設置可用,但對指定的國家和變體不可用
                 // TTS引擎已成功初始化。
                 // 允許用戶按下按鈕讓應用程序再次發言。
                 mAgainButton.setEnabled(true);
             }
         } else {
             // 初始化失敗
             Log.e(TAG, "初始化失敗");
         }
     }

3.寫一個朗讀方法,在需要的時候觸發(如:點擊事件)

TextToSpeech的speak方法有兩個重載。

執行朗讀的方法

speak(CharSequence text,int queueMode,Bundle params,String utteranceId);

第二個參數queueMode用于指定發音隊列模式,兩種模式選擇。
(1)TextToSpeech.QUEUE_FLUSH:該模式下在有新任務時候會清除當前語音任務,執行新的語音任務
(2)TextToSpeech.QUEUE_ADD:該模式下會把新的語音任務放到語音任務之后,等前面的語音任務執行完了才會執行新的語音任務。

將朗讀的的聲音記錄成音頻文件

synthesizeToFile(CharSequence text,Bundle params,File file,String utteranceId);
 private void sayHello() {
         String hello ="Hellow";
         //TextToSpeech的speak方法有兩個重載。
         // 執行朗讀的方法
         //speak(CharSequence text,int queueMode,Bundle params,String utteranceId);
         // 將朗讀的的聲音記錄成音頻文件
         //synthesizeToFile(CharSequence text,Bundle params,File file,String utteranceId);
         //第二個參數queueMode用于指定發音隊列模式,兩種模式選擇
         //(1)TextToSpeech.QUEUE_FLUSH:該模式下在有新任務時候會清除當前語音任務,執行新的語音任務
         //(2)TextToSpeech.QUEUE_ADD:該模式下會把新的語音任務放到語音任務之后,
         //等前面的語音任務執行完了才會執行新的語音任務

         mTts.speak(hello,
             TextToSpeech.QUEUE_FLUSH,
             null);
     }

4.記得利用Activity的生命周期中將其關閉

@Override
     public void onDestroy() {
         // 生命周期中結束
         if (mTts != null) {
             mTts.stop();
             mTts.shutdown();
         }

         super.onDestroy();
     }

源碼

SpeechActivity.java

public class SpeechActivity extends Activity implements TextToSpeech.OnInitListener {

     private static final String TAG = "SpeechDemo";

     private TextToSpeech mTts;
     private Button mButton;

     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.text_to_speech);

         //初始化語音。這是一個異步操作。初始化完成后調用oninitListener(第二個參數)。
         mTts = new TextToSpeech(this, this);

         mButton = (Button) findViewById(R.id.again_button);
        //觸發
         mButton.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 sayHello();
             }
         });
     }

     @Override
     public void onDestroy() {
         // 生命周期中結束
         if (mTts != null) {
             mTts.stop();
             mTts.shutdown();
         }

         super.onDestroy();
     }

     // 實現TextToSpeech.OnInitListener.
     public void onInit(int status) {
         if (status == TextToSpeech.SUCCESS) {
             //設置首選語言為中文,注意,語言可能是不可用的,結果將指示此
             int result = mTts.setLanguage(Locale.CHINA);
             if (result == TextToSpeech.LANG_MISSING_DATA ||
                 result == TextToSpeech.LANG_NOT_SUPPORTED) {
                 //語言數據丟失或不支持該語言。
                 Log.e(TAG, "語言數據丟失或不支持該語言");
             } else {
                 //檢查文檔中其他可能的結果代碼。
                 // 例如,語言可能對區域設置可用,但對指定的國家和變體不可用
                 // TTS引擎已成功初始化。
                 // 允許用戶按下按鈕讓應用程序再次發言。
                 mAgainButton.setEnabled(true);
             }
         } else {
             // 初始化失敗
             Log.e(TAG, "初始化失敗");
         }
     }

     private void sayHello() {
         String hello ="計蒙不吃魚";
         //TextToSpeech的speak方法有兩個重載。
         // 執行朗讀的方法
         //speak(CharSequence text,int queueMode,Bundle params,String utteranceId);
         // 將朗讀的的聲音記錄成音頻文件
         //synthesizeToFile(CharSequence text,Bundle params,File file,String utteranceId);
         //第二個參數queueMode用于指定發音隊列模式,兩種模式選擇
         //(1)TextToSpeech.QUEUE_FLUSH:該模式下在有新任務時候會清除當前語音任務,執行新的語音任務
         //(2)TextToSpeech.QUEUE_ADD:該模式下會把新的語音任務放到語音任務之后,
         //等前面的語音任務執行完了才會執行新的語音任務

         mTts.speak(hello,
             TextToSpeech.QUEUE_FLUSH,
             null);
     }

 }

text_to_speech.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <Button android:id="@+id/again_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:enabled="false" />
</LinearLayout>

以上是“Android中如何使用TextToSpeech”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临泽县| 古蔺县| 环江| 竹山县| 沙湾县| 将乐县| 岳普湖县| 阿拉善右旗| 湖南省| 呼图壁县| 两当县| 兰州市| 天门市| 漳平市| 翼城县| 玉门市| 滁州市| 土默特左旗| 唐海县| 和田市| 巩义市| 高清| 天长市| 库尔勒市| 扶绥县| 门源| 应城市| 麟游县| 伊金霍洛旗| 武胜县| 隆尧县| 西乌珠穆沁旗| 工布江达县| 泰来县| 江西省| 诸城市| 宾阳县| 连州市| 天门市| 桐城市| 临漳县|