安卓开发个人小作品(1) - 有声计算器

大家好,最近才开始写博客,准备先整理一下学习安卓以来,自己做的一些“小玩意”,在回顾知识的同时,也希望可以帮助到有需要的开发者们!!嘻嘻,开始吧!

计算器的实现,并不是这个“小玩意”的重点,同时,我也相信很多初级开发者都可以开发出比我这个计算器功能更加强大,界面更加炫酷的计算器,所以这篇文章主要是介绍实现计算器的有声效果!记得刚实现的时候,觉得好玩,对着扣了好多666!!!哈哈哈哈!!!

语音播放原理

关于实现有声效果,涉及到的核心类就是TextToSpeech,没用过这个类的可以去看下API,类的关系如下

可以看到这是一个直接继承于Object的类。构造方法也比较简单,如下:

下面解释的很清楚,第一个方法是使用默认的TTS引擎,也就是手机自带的。第二个方法,是使用指定的TTS引擎,可以看到第三个参数用来指定用什么引擎

再看看看常用的一些方法

setPitch--设置音调,音调越高,越接近女声,为1.0时,正常播放音调,高于1.0,越尖音,低于1.0,越低音

setSpeechRate--设置语音播报的速率,为1.0时,正常播放速率,高于1.0,快播,低于1.0,慢播

setVoice--设置声音,传入一个Voice对象即可,可以用TextToSpeech的getVoices()来获取Voice对象

shutdown--释放引擎资源

stop--停止当前的语音播放,使用时,在shutdown方法之前,也就是先stop再shutdown

此外还有setLanguage等方法,用法也比较简单,就不赘述了。

核心方法:speak

 

 

可以看到官方文档说的非常清楚,这个方法已经被弃用了,所以我们在使用的时候就不要用这个方法了,用这个

 

参数一:text  要播放的文字

参数二:播放策略,采用队列的方式,一共有两个值QUEUE_ADD和QUEUE_FLUSH,是什么意思呢?假设一个情况,当前tts正在播放语音当中,还需要一段时间才可以放完,如果为QUEUE_ADD,那么此时新播放的语音将会在当前语音播放完了才播放,如果为QUEUE_FLUSH,那么将会终止当前的语音播放,立即播放需要播放的语音。可以很容易联想到这里是使用的队列来管理的。

 

参数三:一般情况下可以为空,官方文档解释是,用于传递特定引擎参数。

参数四:用于指定当前这次的请求的唯一性。

 

好了,TextToSpeech了解的差不多了,还需要知道的是,TextToSpeech初始化引擎用到的一个接口OnInitListener

回调方法init()方法会返回一个status,用于判断是否成功,一般在这里设置语言以及对语言设置失败的情况进行处理,代码如下

计算器的实现

然后计算器的实现,我就不多说了,网格布局,,或者普通的线性布局也可以,模仿一下常用计算器的界面,然后可以封装一个用于播放的方法类,这样代码简洁点,由于代码量都很少,不过十行的事,基本把我上面说的了解了,自己动手写没什么问题,相关的代码也都是重复的,一些按钮的点击事件,所以就没必要贴了。

不过除了界面之外,要想实现一个完整的计算器的逻辑还是需要花点功夫的,比如

(1)减号不仅可以作为减号,还可以作为负号(细枝末节的问题比较多,这里仅列举一个作为参考)

(2)连续运算,连 加/减/乘/除 的的实现(考验基本功的时候到咯)

 

(3)数值范围以及数值精度的处理(数值精度问题提醒一下,BigDecimal)

当然还会有其它的很多问题,那就不是本文的重点啦!!

温馨提示

如果按照本文的思路,最后发现文字没有转化成语音播放,比如我之前的红米手机,/呜呜呜,当时搞了好久,不过我都为你把坑填平啦,请检查你的手机是否有如下问题!

(1)音量没打开,静音怎么可能听得到!(我当时还真以为是代码的问题!-.-||)

(2.)检查是否支持中文的TTS(文字转语音)输出,怎么查看呢,打开手机的设置-->>语言和输入法-->>文字转语音(TTS)输出,点开你会看到你手机目前支持的TTS引擎,我当时系统默认的引擎是不支持中文的,结果,我代码改了N遍,,,,你懂的,,,都是泪啊,总之有遇到的希望这篇文章能帮你跳过这个坑就行。

当然肯定又有小伙伴问,要是我的手机TTS输出默认不支持中文,这可怎么办呀,答案就是,点击科大讯飞,进入官网下载语音引擎,安装在手机上即可,然后,进入手机的设置,你会发现,有一项就是刚才安装的科大讯飞语音引擎,然后设置当前语音引擎为科大讯飞的即可。

如果你顺利完成了上述操作,那么还在等什么,运行APP扣666啊!!!!

最后再放一张我当时最后完成的效果吧!轻喷,原谅我当时还是初学者(以及这个配色)!!

好辣,今天就到这吧!!下次见!!

源码下载

有声计算器源码下载

 

 

 
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 有声绘本开发是指开发适用于Android系统的绘本应用程序,通过添加声音和音效来增强用户对绘本的阅读体验。 Android 有声绘本开发有以下几个方面的要点: 首先,需借助于Android开发平台和相关的工具和语言,如Java和Android Studio等。使用Java语言编写代码,通过Android Studio进行开发和调试,构建具有良好用户界面的应用程序。 其次,有声绘本开发需要有良好的绘本资源和音频资源。可以利用各种绘本素材和插图来构建绘本页面,通过添加适当的声音和音效来增加趣味性和吸引力,让用户更好地理解故事情节。 另外,还可以为用户提供一些交互功能,使他们能够与绘本进行互动。例如,通过点击动画或单词,触发相关声音或解释,帮助用户更好地理解故事内容。 此外,对于有声绘本开发,需要关注用户体验和界面设计。应该确保应用界面简洁直观,易于操作,并具有良好的可用性。同时,还要考虑适应不同屏幕尺寸和分辨率的设备,以及不同年龄段和语言背景的用户需求。 最后,需要进行测试和优化,确保应用程序的稳定性和流畅性。通过测试,修复bug并进行性能优化,以提供更好的用户体验。 综上所述,Android有声绘本开发需要综合利用Android开发工具和语言、绘本资源、音频资源以及界面设计等多个方面的知识和技巧。只有综合考虑这些要点,才能开发出具有良好用户体验的有声绘本应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值