这是一款可以语音播报多功能的app。。。下面说说实现代码吧

先看一下效果图:

首先先弄好界面xml代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"android:layout_height="match_parent" tools:context="com.example.myapplication.MainActivity"android:orientation="vertical"android:background="@drawable/bei"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="选择语言"android:textColor="#c6b821"android:textSize="30dp"/><Spinnerandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/spinner"></Spinner><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="输入需要朗读的文字"android:textSize="30dp"/><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/edt"android:background="@drawable/edt"/><Buttonandroid:layout_marginTop="10dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="播放"android:textColor="#fff"android:textSize="30dp"android:id="@+id/btn"android:background="@drawable/loing_btns"/><Buttonandroid:layout_marginTop="10dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="结束"android:textColor="#fff"android:textSize="30dp"android:background="@drawable/loing_btns"android:id="@+id/btn1"/><Buttonandroid:layout_marginTop="10dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="循环播放"android:textColor="#fff"android:textSize="30dp"android:background="@drawable/loing_btns"android:id="@+id/btn2"/>
</LinearLayout>

然后Mainactivity.java里面

package com.example.myapplication;import android.content.DialogInterface;
import android.speech.tts.TextToSpeech;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.ToggleButton;import java.util.ArrayList;
import java.util.List;
import java.util.Locale;public class MainActivity extends AppCompatActivity {private TextToSpeech textToSpeech = null; //TTSprivate Spinner spinner ; //下拉列表框private EditText editText;private Button button;private String[] langs;//下拉列表款里面的选项private String curLang;private List<String> list = new ArrayList<String>();private ArrayAdapter<String> arrayAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);langs = getResources().getStringArray(R.array.languages);spinner = (Spinner)findViewById(R.id.spinner);editText = (EditText)findViewById(R.id.edt);button = (Button)findViewById(R.id.btn);Button button1 = (Button)findViewById(R.id.btn1);Button button2 = (Button)findViewById(R.id.btn2);for (int i = 0;i<langs.length;i++){list.add(langs[i]);}langs = getResources().getStringArray(R.array.languages);ArrayAdapter arrayAdapter = new ArrayAdapter(this,R.layout.support_simple_spinner_dropdown_item,langs);spinner.setAdapter(arrayAdapter);spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { //下拉列表框点击事件@Overridepublic void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {curLang = (String)spinner.getAdapter().getItem((int)l);if(textToSpeech!=null){textToSpeech.stop();textToSpeech.shutdown();textToSpeech = null;}textToSpeech = new TextToSpeech(MainActivity.this,new TTSListener()); //给定一个TTS语音}@Overridepublic void onNothingSelected(AdapterView<?> adapterView) {}});button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {textToSpeech.speak(editText.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);}});button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {textToSpeech.stop();}});button2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {for(int i = 0;i<10;i++) {textToSpeech.speak(editText.getText().toString(), TextToSpeech.QUEUE_ADD, null);try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}}}});}private  int SetLanguage(String lang){int result = 0;if (lang.equals("中文")){result = textToSpeech.setLanguage(Locale.CHINESE);}else if (lang.equals("英文")){result = textToSpeech.setLanguage(Locale.ENGLISH);}else if (lang.equals("日语")){result = textToSpeech.setLanguage(Locale.JAPANESE);}else if (lang.equals("韩语")){result = textToSpeech.setLanguage(Locale.KOREAN);}else if (lang.equals("法语")){result = textToSpeech.setLanguage(Locale.FRENCH);}else if (lang.equals("意大利语")){result = textToSpeech.setLanguage(Locale.ITALIAN);}return result;}private class TTSListener implements TextToSpeech.OnInitListener{@Overridepublic void onInit(int i) {if (i == TextToSpeech.SUCCESS){int result = SetLanguage(curLang);if(result==TextToSpeech.LANG_MISSING_DATA||result ==TextToSpeech.LANG_NOT_SUPPORTED) {textToSpeech.speak("你输入的不是该国语言", TextToSpeech.QUEUE_FLUSH, null);}}}}}

如果有不懂得spinner下拉列表框的使用可参考我的上一篇博客里面有详细的介绍,最后祝大家生活愉快,谢谢观看。。。

一款简单的语音播报app相关推荐

  1. 来电语音播报软件下载apk_消息语音播报app下载-消息语音播报安卓版 v1.0.1 - 安下载...

    消息语音播报app是一款语音播报工具,它可以将微信.QQ.短信等消息进行语音播报,让你能够第一时间知晓消息内容,无需进入界面也能知晓发来的消息:它支持多个场就下使用,开启语音播报后无需你手动打开手机查 ...

  2. 【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)

    什么是TTS? TTS是Text To Speech的缩写,即"从文本到语音",是人机对话的一部分,让机器能够说话.TTS是语音合成应用的一种. 在程序开发中,有很多TTS的插件, ...

  3. html用手机什么软件能编写,目前编写一款简单的手机应用APP一般用什么编程语言?...

    编写手机App,用什么语言? 从简单到复杂,可以分三级: 简单方案:HTML5 其实就是把网页封装成App.编程语言就是网页三件套:HTML+CSS+Javascript 有多种工具和框架,如Cord ...

  4. 如何开发一款用户体验优秀的语音交友app?

    在数字时代,人们越来越依赖智能手机上的应用程序来与他人进行交流.其中,语音交友app成为了最受欢迎的应用之一.然而,开发一款成功的语音交友app需要深入了解用户需求与体验.本文将探讨如何开发一款用户体 ...

  5. 基于cw32f030c8t6的多功能语音播报提醒装置装置

    有幸申请到了武汉芯源公司的大学计划板开发板,本次结合历程探索学习,应一位小学教师朋友的需要,对孩子兴趣启蒙并对孩子们声音大小提醒,故使用cw32f030c8t6mcu开发这款多功能语音播报提醒装置 功 ...

  6. 4款语音播报来电短信应用[Android]

    Siri的风行让很多人对语音技术有了新的认识.开车.走路.挤公车.敲键盘,我们的双手无时无刻不处于忙碌状态.忙碌或不便的时候手机响了怎么办 呢?语音技术,让听觉功能派上用场!你的手机还不会说话?那么小 ...

  7. 来电语音播报软件下载apk_来电播报下载-来电播报app安卓版下载v1.2.0-游侠软件下载...

    来电播报是一款能够播报来电人姓名.号码和短信内容的应用软件,使用来电播报,用户在开车或是不方便查看信息的时候,也能知道是谁来电,有需要的朋友赶快下载吧! 来电播报app介绍 来电播报APP是通过获取来 ...

  8. APP收款语音播报功能讲解

    一.背景 比起主动扫码能确定收款多少与是否到账,扫二维码支付场景不能直接确认,需要核对客户付款截屏,目前微信.支付宝在扫二维码支付后,均支持收款方自动播报收款到账信息,为了秦丝APP有更好体验,也需要 ...

  9. 来电语音播报软件下载apk_来电播报安卓版下载|来电播报app下载_v1.2.6_9ht安卓下载...

    来电播报是一款语音助手工具,帮助用户将来电.短信等信息播报出来,多种提醒模式,支持切换男女声设置和EQ设置,感兴趣的朋友赶紧下载吧! 来电播报介绍 来电播报是通过获取来电联系人,转成语音数据,通过sp ...

最新文章

  1. 第十六届智能车竞赛比赛进行中 - 参赛队员提出的问题
  2. javascript中break和continue
  3. Bounce 弹飞绵羊
  4. 容器学习 之 容器的组件(三)
  5. Eclipse3.7 Indigo 字体设置为Courier New
  6. 在读博士一作发Nature,学校重奖50万!
  7. 4 大妙招,教你快速搞定复杂的系统编程!
  8. ahp层次分析法matlab代码_(案例)AHP层次决策分析Matlab编码计算
  9. javase实现银行转账
  10. 【模式识别】信号检测实验及MATLAB仿真
  11. 北京大学2019年高等代数考研试题
  12. 如何升级composer
  13. 修改placeholder文字 文字换行省略号 背景图固定 鼠标经过图片闪光效果
  14. UNet语义分割模型的使用-Pytorch
  15. 计算机键盘的tab键是哪个,电脑键盘中的Tab键都有哪些妙用
  16. C# 提取Word中插入的多媒体文件(视频、音频)
  17. Linux-- rmdir 命令
  18. 【算法】欧拉函数公式证明
  19. uniapp 英寸尺子 尺子 左右滑动
  20. 【数据结构_选择题】(D21 0519)

热门文章

  1. mac os 系统升级到 Catalina 版本后出现应用打不开 ,闪退,意外退出问题
  2. Volume数据存储详解
  3. Virtualbox 学习 — network setting
  4. 检验下载文件完整性、真实性——SHA256校验值
  5. 操作系统——linux
  6. OUC2021秋-Web安全技术-期末(回忆版)
  7. Idea构建异常---Could not parse metadata xx/xx/maven-metadata-local.xml-删除文件解决不掉---SpringCloud工作笔记176
  8. 为什么说C++太复杂?复杂的必要性是为什么?
  9. 智行者获北京自动驾驶T3路测牌照的「高速无人车“星骥”」体验如何?
  10. ES6语法——for...in..以及字符串新增操作