Озвучить текст из TextView

286
22 января 2017, 14:34

Возможно ли озвучить текст который отображается в TextView?

Может встроенным синтезатором речи Android или как-то по-другому? В какую сторону копать?

Answer 1

Да, возможно, например с помощью встроенного синтезатора речи.

Вот простой пример использования TextToSpeech:

public class MainActivity extends AppCompatActivity implements TextToSpeech.OnInitListener {
    private Button mSpeakButton;
    private TextToSpeech mTextToSpeech;
    private boolean mIsInit;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mSpeakButton = (Button) findViewById(R.id.speek_button);
        mTextToSpeech = new TextToSpeech(this, this);
        mSpeakButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mIsInit) {
                    String textToSpeech = "Привет!";
                    mTextToSpeech.speak(textToSpeech, TextToSpeech.QUEUE_FLUSH, null, "id1");
                }
            }
        });
    }
    @Override
    public void onInit(int status) {
        if (status == TextToSpeech.SUCCESS) {
            Locale locale = new Locale("ru");
            int result = mTextToSpeech.setLanguage(locale);
            if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                mIsInit = false;
            } else {
                mIsInit = true;
            }
        } else {
            mIsInit = false;
        }
    }
}

При запуске приложения происходит инициализация TextToSpeech, результат которой возвращается в коллбэк:

public void onInit(int status)

Если инициализация прошла успешно, то флаг mIsInit устанавливается в true, в противном случае – в false.

Далее, по нажатию на кнопку происходит воспроизведение текста из переменной textToSpeech.

READ ALSO
Java. Как создать API для своей игры? [требует правки]

Java. Как создать API для своей игры? [требует правки]

У меня есть игры на JavaКак создать API, чтобы игроки могли создавать аддоны\моды? Его писать в саму игру или в отдельном проекте? Как его подключить...

340
Общие куки для всех браузеров selenium

Общие куки для всех браузеров selenium

Я создаю браузер, в котором логинюсь на сайте и считываю ссылки, для каждой ссылки мне нужно создать еще один браузер и при этом чтобы куки...

373
Андроид проблемы с fragment

Андроид проблемы с fragment

ЗдравствуйтеИмеются два фрагмента А и Б

373
Парсинг json файла из json

Парсинг json файла из json

Есть json файл, данные которого после парсинга выводятсяОдин из объектов хранит в себе ссылку на другой json-файл

376