未分類

Android - テキストを音声で読み上げる

準備

(なし)

デザイン

1. main.xml にボタン (button1) を配置します。

サンプルコード (Java)

package com.test.test01;

import java.util.Locale;
import android.app.Activity;
import android.view.View.OnClickListener;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.view.View;
import android.widget.Button;

public class Test01Activity extends Activity
  implements OnClickListener, OnInitListener {
  private TextToSpeech Speech;
  private Button b1;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Speech = new TextToSpeech(this, this);
    b1 = (Button)findViewById(R.id.button1);
    b1.setOnClickListener(this);
  }

  public void onDestroy() {
    super.onDestroy();
    Speech.shutdown();
  }

  public void onClick(View view) {
    Speech.speak("Hello, my name is Hanako Yamada.", TextToSpeech.QUEUE_FLUSH, null);
  }

  public void onInit(int status) {
    Speech.setLanguage(Locale.ENGLISH);
  }
}

解説

TextToSpeech を使用して、テキストを読み上げています。

TextToSpeech に使用するイベントリスナーの概要は次の通りです。

  • インターフェース : OnInitListener
  • イベントオブジェクトとリスナーオブジェクトの関連付け :  Speech = new TextToSpeech(this, this);
    (第 2 パラメータがリスナーオブジェクト)
  • リスナーオブジェクト : this (Test01Activity クラス)
  • リスナーオブジェクト : onInit

結果

-未分類