APP下载

基于Android的《替身天使》的设计与实现

2016-07-04李琦郭婷李敏

电脑知识与技术 2016年15期

李琦+郭婷+李敏

摘要:研究了在Android开发平台下《替身天使》软件的设计与实现过程,该系统是使用Android 软件开发工具包和 Eclipse 集成开发环境进行开发的,实现了为用户定制一个形似自己的天使,并让天使替自己去向亲朋好友传达真情惬意,允许用户和天使进行人性化的交互,有声有色,惟妙惟肖,非常富有趣味性和消遣性。应用程序是基于 Java 语言开发完成的,并且已经在真机上测试通过。

关键词:Android;人机互动;屏幕录像;智能应用

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)15-0100-03

Abstract: This paper discussed the design and implementation process of electronic dictionary software on Android

development platform. This application ,using Android SDK and the Eclipse IDE to develop, is available in customizing a angel shape like himself for user ,and angel can convey the truth for the users own to friends, user also can interact with the angel full of humanness, impressive and vividly, full of fun and Recreational. The applications are developed based on Java language, and worked as expected on the emulator.

Key words: Android; human-computer interaction; screen recorder; intelligence applications

1 项目背景

随着时代的进步,科技的进步,各种电子产品已经渗透到我们生活的方方面面,以娱乐电子产品最为突出,不同的娱乐电子产品会给广大用户带来不同的感受和生活理念。各产业的发展是相互带动的,娱乐产业也带动了许多相关产业市场的发展。娱乐平台已经从之前的游戏机过度到了现在的手机,其中经历了很多技术上的革新和发展。当然,随着人们现在生活水平质量普遍的提高,手机娱乐已经成为大众化的娱乐方式,况且因为手机是轻巧便捷的,还是我们日常生活进行便利通信的工具,由此可以看出,基于手机平台的娱乐软件发展前景十分广阔,再者这毕竟是以信息为主流的时代,是离不开网络的时代,故手机娱乐软件必定会以日新月异,方兴未艾的趋势去发展!

《替身天使》可为用户设计出人性化的天使形象,允许用户和天使形象进行简单便捷的交互,在交互的过程中可让用户体验到其中的无限乐趣,幽默诙谐又不失情趣,并能够以便捷合理的方式允许其向亲朋好友传达自己的深情惬意,从而使用户有归属感、认同感和亲切感,这样既愉悦了身心,又促进了人际关系,对用户和社会都有良好的促进作用。

2 项目所涉及的关键技术

《替身天使》主要包括面部图像的采集、人机交互设计和录屏与分享这三个方面,其中面部图像的采集所涉及的关键技术为头像采集和面部图像处理技术;人机交互设计涉及了人机交互学,以及录音技术,录屏涉及得到的为屏幕录像技术。

2.1 面部图像的采集

头像采集:当采集完用户的正面头像后,有一个需要用户参与的交互过程,用户需要根据软件的提示对图片就行裁剪,即把裁剪框移到图片的面部中央,把眉毛,鼻子,眼睛和嘴所在的区域裁剪下来,点击确定后就表示已经把这个模块裁剪下来了,其中用到了图片裁剪技术。

面部图像处理:对所采集到的面部平面图像进行分析,预先定义好颜色色系,接着系统将获取到的图像统一转化为RGB格式,之后对图像的像素点进行遍历,以获得图像中色系种类与比例及色系的位置,从而统计出主色在色系中的权重。接着根据之前已经定义好的颜色色系,对图像内容进行分析。其次,为色彩图像的 RGB格式,建立二维平面坐标图,根据相近色系的微小差异,划分好三通道色素所对应的色系,接着将已有的图像结果与色彩区块的冷暖调与鲜明程度进行匹配,匹配后到达具体的阈值。最后,将所遍历到的像素点放入一个类组中,再将同一类组的像素点进行渲染形成同一颜色,其中灰度图像聚类分析可采用K-means算法。这样裁剪下来的脸部模块就能和模板进行良好的融合了,以此一个几近用户的天使形象就做好了!

2.2 人机交互设计

用户可以通过触摸天使的身体部位与天使进行交互,天使可以根据用户对其不同部位的触摸而作出相对应的反馈,其中涉及了人机交互学,关键是对用户交互方式的设计,例如:点击,滑动等等,以及和对天使反馈动作的设计,以让用户进行交互时得到良好的用户体验。

说话模仿:用户可以将自己的语音录入系统,点击播放后,天使可以模仿用户的声音把录入的语音重复一遍,已达到天使模仿用户说话的效果,其中涉及的技术是录音和播放技术。这主要是通过调用手机音屏设备的底层驱动来实现的,设计分为应用层和底层驱动,层之间是通过调用相关函数来获取对应的服务或消息来进行通信的,它们之间的关系如图1所示,其中录音和播放模块的应用层是根据用户触发的事件调用底层驱动来处理事件的。底层驱动位于应用功能的底层,直接控制物理音频设备,可对其开放开/关,录/放音的通道。语音底层有两层设计,即驱动控制层和语音驱动,驱动控制是向上层应用发送消息,语音驱动是完成MCU和DSP之间的数据交互。

2.3 录屏与分享

在和天使进行交互时,可以利用视频录制功能将交互过程记录下来生成一段小视频,点击分享后即可分享到交流平台,我们以XML文件作为制作平台和播放器之间的桥梁,来实现动画的录制和播放,动画录制后所得到的文件格式为AVI(音频视频交错格式),并且为了在录制屏幕的时候不把屏幕录制功能的界面录制进去,使用了托盘技术。图2展示了表示哭的动作的XML标签结构。

其中标签中描述的是视频录制后保存的路径;

交互的天使形象如图4所示,其中(a)为交互前根据用户形象采集融合的天使形象,而(b)则是交互录制中的天使形象。

动画录制流程:当用户和天使进行交互时,系统会自动把交互过程中的一系列图像和语音的组合捕捉到,并载入到系统相对应的库中,录制时直接在相应的库中打开即可,此时可对这些素材进行取舍,选取符合的满足条件的素材导入素材库,这些素材就是动画录制所需要的动作,之后对它们进行编辑,编辑完成后,录制也就结束了;录制完成后,对动画进行预览,如若不满意则返回到交互编辑界面进行适当的调整,知道录制的效果满意为止。

动画播放流程:动画录制完成后,就可以进行播放了,首先得读取 XML 文件中的动画脚本,把动作类型及其概念上的数据读取出来,但是动作的类型和数据是分开的,故得先从动作库中查询动作类型所对应的数据,这其实就是一个读出各个动作的操作数据的过程,之后将读出的数据载入系统中。之后就可以对动画进行播放了,整个动画过程包含许多个动画单位,整个动画是由多个动画单位连续播放而成的,读取XML 文件的过程就是播放多个动画单位的过程,整个动画播放过程都是读取数据的过程。

3 项目的实现

本项目所要实现的功能是生成卡通人物,人机互动和动画视频的录制与分享三个功能。

3.1 生成卡通人物

主页中,是一张已经预设好的人物模板漫画图片,如图5所示,点击“头像采集”按钮即可选择采集个人照片的形式,有两种方式:拍照或从相册中选取,若是选择拍照,系统会自动调用手机自带的拍照功能界面,像往常一样正常的对着镜头拍下自己的照片,点击确定后即可;若是选择手机相册中的图片,选择后点击确定即可;图片采集完成后,系统会自动生成一张基于模板之上的一张具有用户的脸部图像的漫画图片,这样一个效仿用户自己的天使形象就做好了,如图6所示。

3.2 人机互动

用户可以触摸天使,在触摸天使时,天使会根据情况作出相应的反应,打它的头,它会装成被打的样子,连续打还会晕倒;抚摸肚子,它会打呼噜;打肚子,它会装肚子疼;戳脚,它会抓着脚发出痛苦声等等。只要对着天使讲话,它就会把用户说的话一字不差的重复一遍。

3.3 动画视频的录制与分享

当然在用户和天使进行交互时,可以点击屏幕录制按钮,即可把用户和天使做的所有行为保留下来,保存下来的是动作和语音的结合,这样一个动态的富有情感的天使形象就完成了,是一段语音结合的小视频;最后点击“分享”选项,选择分享平台后,选择接受方,点击发送按钮后,替身天使就开始替用户传达情谊了!

4 结束语

替身天使是一款简单小巧的娱乐软件。用户可以拍摄自己的正面照片导入系统,系统将模拟生成一个形似自己的天使;用户可以点击屏幕录制按钮,触摸天使,天使会做出相关的反应,亦可以录一段自己说的话,工具会生成一段视频,最后以视频的形式分享。另外再对用户的触摸效果进行识别后,摆出各种各样的姿势,展现出不同的表情以及各种搞笑的活动。此项目可以满足我们对娱乐的需求,放松我们的心情,减轻我们的压力,丰富我们的业余生活,可以给分居异地的亲朋好友传递我们的问候与祝福,以增强朋友之间的联系,维持朋友之间的友谊。

参考文献:

[1] 李志岩, 孔祥安, 杨康,等. 基于XML文件的动画编辑与播放系统设计[J]. 电脑知识与技术, 2015(13):195-196..

[2] 程思源. 计算机图形图像处理相关技术研究[J]. 计算机光盘软件与应用, 2012(17).

[3] 赵宏伟. Android NDK开发环境实现与应用[J].电脯知识与技术,2010(35).

[4] 李杨, 冯刚, 李亮,等. 基于Android的多媒体应用开发与研究[J]. 计算机与现代化,2011(4).