本文在对移动学习概念和特点进行阐述的基础上,基于Android平台设计并开发了一款多功能电子钢琴学习软件OPiano。通过OPiano提供的普通模式,初学者可以了解钢琴的一些基本乐理知识,而学习模式则提供了较为真实的钢琴模拟环境,让用户能够通过触摸屏幕享受弹奏钢琴的乐趣。OPiano的开发不仅丰富了安卓应用软件开发的种类,而且向初学者学习钢琴的相关知识和培养兴趣提供了一种便捷、有效的途径。
一、引言
移动学习(Mobile Learning),是指基于手持终端的学习、阅读、娱乐等文化消费行为。[1]广义上的手持终端,包括手机、PDA、学习机、PSP、MP3、MP4 等设备。随着智能手机和平板电脑等智能移动终端的普及,移动学习已成为一种重要的学习模式,具有灵活性、便携性、交互性、个性化和广泛性等特点。[2]由于移动学习可以跨越地域限制,充分利用可携带技术;同时,借助智能终端提供的多点触控、无线上网、多媒体应用等技术,使学习过程充满了魅力及乐趣。[3]
钢琴作为乐器之王,在发挥音乐开发智力的功能中比声乐以及其他乐器有着更多的优势,因此,它常常被当成首选的家庭乐器。不过,钢琴的价格比较昂贵,动辄几万元,不是所有家庭都能负担得起的。而且一些家庭在购买钢琴给孩子练习后,发现孩子对它缺乏兴趣,使用一段时间后就束之高阁,造成投资的浪费。如果能事先了解学习者对某种乐器的喜爱程度和兴趣,就能有效地帮助孩子挑选合适的乐器。
移动学习模式能很好地解决上面的问题。由于它本身具有的特性,可以为学习者提供一个虚拟化、情境化的乐器学习和弹奏环境,挖掘学习者在音乐方面的潜质。
二、现有模拟钢琴类学习软件存在的问题
作为一种新的移动学习类软件,模拟钢琴软件受到人们的关注。本文从360的手机Android平台和安卓网(www.pc6.com)上随机下载5款模拟钢琴类软件并从功能模块、按键设置、学习功能、适合人群和收费情况5个方面进行对比,如表1所示。
从表1可以看出5款软件都实现了一些钢琴使用的基本功能,例如小键盘显示、按键发音、播放已有钢琴曲目;同时,每款软件又各有特色,如边学边弹模式、乐谱简化为字母、音效模拟或者音符与五线谱对应等。从界面设计来看,5款软件都提供单排演奏功能,有2款软件还提供双排演奏。从学习功能上看,这5款软件的学习功能都偏弱,完美钢琴虽然提供一定的学习模式,但是需要在付费情况下才能使用,而且没有提供相应的钢琴学习材料;一秒学钢琴的学习模式与完美钢琴类似,但是也无学习教材;钢琴教练尽管支持学习模式并有学习教材,但这些功能需要在收费模式下才能使用。从适用人群看,前3款软件均需要使用者有一定的音乐基础,而其余2款软件则可以面向无钢琴使用基础的人使用。
总体来看,这5款软件所提供的学习功能都较弱,它们更倾向于提供休闲娱乐功能,而且大部分适合于有一定音乐基础的学习者。因此,开发一款功能丰富,并能兼顾钢琴初学者的学习软件具有很好的实用价值。
三、移动学习的特点
智能手机的出现为教育类软件提供了一个全新的平台,手机类应用具有携带方便、简单易用、可以随时随地学习的优势。[4]因此,移动学习类软件在策划的过程中应该根据自身特点进行设计。下面列出移动学习的一些特点。
(1)学习形式的移动性。学习者不受时间的限制,任何时间都可以进行学习,而不必按固定的时间进行。同时,教师也可在移动中不受时空的限制随时随地进行教学。[5]
(2)学习时间的碎片性。为了方便学习者在移动中学习,可以充分利用时间的零碎片段,掌握一个相对完整的知识组块,经过每天的积累和消化,最终会形成一个完整的知识拼图。[6]
(3)学习过程的交互性。移动学习环境使用最新的技术给教学活动带来交互的环境。学生不是被动参与到学习过程中,他们可以利用网络通信技术和移动计算技术,实现数字化学习信息、资源和服务传输的双向交流。[7]
(4)个性化的学习需求。在移动学习模式中,学习者根据自己的学习需求,自己控制学习的进度、安排学习时间和地点、自由选择学习内容。
(5)学习技术的融合性。移动学习将诸如个性化、多媒体、情境智能、触觉交互、移动设备、无线通信等多种技术相互融合,实现了从有线虚拟学习环境到无线虚拟学习环境的转变。
四、Opiano的设计
1.Opiano的设计目标
现有的5款钢琴模拟类软件是以娱乐休闲为主,缺少教育性。针对这个问题,Opiano在设计时需要兼顾娱乐性与教育性,换言之,Opiano是一款同时面向钢琴初学者和爱好者使用的多功能电子钢琴学习软件,能发现初学者是否对钢琴演奏产生兴趣,减少购买钢琴的盲目性。它借助平板电脑提供的丰富的多媒体功能和多点触控技术等优势,向学习者展现出一个较为真实的钢琴弹奏环境,方便学习模拟。除了弹奏功能外,Opiano还具有乐谱展示、录音和播放、保存、清除等功能,不仅让用户享受在移动终端上弹奏钢琴的乐趣,还具有辅助钢琴教学的功能。
2.Opiano的学习资源设计
Opiano属于培养兴趣类移动学习软件,通常此类课件的时长设计应该偏短一些,最好在5分钟至10分钟范围内,并将课程知识点进行深度细化。[8]以此为基础,本软件向学习者提供了钢琴启蒙阶段的学习资源。学习资源主要包括文字材料、视频文件和音频文件。文字材料介绍钢琴入门学习的相关知识点,包括键盘认识、钢琴的指法、五线谱基本要素、单手练习和双手练习等10个学习主题,每个主题均配有文字说明和图片说明,内容讲解以10分钟为限。为了丰富学习过程和形式,我们根据不同的主题,分别录制相应的视频文件和音频文件,学生在学习过程中可以随时打开对应的资源以获得帮助。此外,我们还从拜厄的《钢琴基本教程》中精心选择了10首练习曲录制为视频文件,让学生可以跟随视频文件进行练习。
3.Opiano软件设计
Opiano在软件设计上主要包含两种应用模式:“普通模式”和“学习模式”,如图1所示。“普通模式”可以主要适合于钢琴爱好者,体现出Opiano的娱乐功能。它可以让用户随意弹奏乐曲,并且提供完整的88个钢琴键,用来模拟所有音阶。“学习模式”则帮助初学者掌握基本的乐理知识,虽然只提供最常用的17个琴键(集中在钢琴键的C区),不过可以支持乐谱指示功能,指导用户弹奏既定的乐曲。
4.Opiano软件界面设计
“普通模式”的界面设计主要分为4个部分,如图2所示。控件操作区显示音量调节、录音、播放等常用按钮。信息显示区显示用户操作的内容。全琴键视图区显示一张全琴键(钢琴的88个琴键)图片。由于设备屏幕尺寸的限制,不可能一次性显示全部琴键,用户通过这个区域就能获知和调节当前琴键的显示范围。模拟琴键区则显示可滚动的模拟钢琴琴键,一次只能显示17个琴键,是该模式下最主要的区域,用户就在该区域进行弹奏。
“学习模式”的界面设计同样分为4个部分,如图3所示。其中控件操作区和信息显示区与“普通模式”完全相同。乐谱显示区和模拟琴键区是该模式最主要的两个区域,前者用来动态显示乐谱,使用户可以根据乐谱的指示弹奏乐曲,以达到充分的人机互动,同时体现了辅助教学的功能;后者供用户进行弹奏,但是只显示固定的17个琴键,不可以滚动。
五、Opiano实现的关键技术
1.Opiano的开发框架
根据以上移动学习的特点和Opiano的学习目标,本文基于10.1寸的Android平板电脑开发了相应的移动学习软件。系统要求Android 2.3及以上版本,开发平台为Eclipse和ADT,ADT是Android开发工具,通过安装ADT插件就可以实现在Eclipse上开发Android的应用程序。[9-10] Opiano主要在Android系统的应用程序框架内进行开发,该框架提供Android应用程序使用的系统基本API(如Button、TextView、SeekBar等等),以及开发过程中常用到的基本框架组件,如View、Content Provider等。
2.Opiano实现的关键技术
为了让Opiano能逼真地模拟电子钢琴的功能,下面将重点阐述软件实现上的一些关键技术。
(1)模拟琴键界面的实现
当用户进入“普通模式”或“学习模式”后,会在设备屏幕下方看到一排仿真的钢琴琴键,如图4所示。钢琴的琴键是由两个相邻但是形状不一致的白键和一个黑键构成,布局非常复杂。在开发过程中,无法使用单一的布局组件(即Android API,常用的布局组件有LinerLayout等)实现,而是将黑色琴键沿着白色琴键的分界线分割成左右两个小矩形,在线性布局(LinerLayout)的框架中使用相对布局(RelativeLayout)完成的。
(2)全键盘视图功能的实现
由于Android平台电脑屏幕宽度的限制,为了使用户能够通过拖拽全键盘视图上的滑块(如图5所示)便捷地调节琴键的显示区域,本文采用API控件SeekBar并结合水平滚动布局(HorizontalScrollView)实现全键盘视图的功能,即将图片作为SeekBar的滑道,滑块指示屏幕当前显示的模拟琴键区域。利用SeekBar提供的接口OnSeekBarChangeListener接收SeekBar进度改变时的消息,就能获取用户拖拽滑块前后的进度改变,从而计算出模拟琴键需要滚动的距离,以便让模拟琴键滚动到正确的位置。
(3)乐谱动态显示功能的实现
乐谱的动态显示是“学习模式”最主要的功能。其实现效果如图6所示。
乐谱内容显示在文本控件(TextView)中,一次性只显示两行音符。第一行音符在显示完毕后会自动消失,同时第二行音符移动到第一行,并且在该控件的第二行显示新的音符,因此整体看起来乐谱内容在向上滚动,一次性滚动一行。乐谱内容存储在标准的XML资源文件中,主要存储两种类型的信息——音符和每个音符的时长(节拍数)。使用Android API——XmlResourceParser对XML资源文件进行解析,提取文件中的乐谱信息。
乐谱显示的整个过程中,完全由进度条控件(ProgressBar)控制乐谱的动态变化(音符的颜色变化和乐谱内容的滚动)。ProgressBar进度的动态增长是由Android线程实现的,并且其增长速度由音符的时长决定。
(4)弹奏模拟琴键的程序实现
弹奏模拟琴键是“普通模式”和“学习模式”下最主要的程序。首先,它给用户提供了仿真的模拟钢琴琴键界面,让用户可以触摸。其次,当用户用手指触摸每一个模拟琴键时,模拟琴键会发出相应的琴键声音直到用户抬起手指,声音才会停止。为了使用户弹奏模拟琴键的效果更为真实,该程序还实现琴键被按下和弹起时不同的视觉效果,其功能如图7所示。该程序主要通过按钮触摸事件监听器来实现。
(5)调节琴键显示区域的程序实现
由于设备尺寸的限制,无法将全部的模拟琴键一次性地显示在屏幕上,屏幕只能显示17个模拟琴键。但是模拟琴键是可以通过调节设备屏幕上方的全琴键视图而进行左右滑动,在滑动的过程中改变其在屏幕上显示的琴键区域。除此之外,用户还可以通过全键盘视图准确地获悉当前显示的琴键是在什么区域,方便用户进行弹奏。
例如,用户当前看到的琴键处在中音区,但是用户想到高音区进行弹奏。这时用户可以向右拖拽全键盘视图上的滑块,直到在高音区的位置停下,之后模拟琴键就能在瞬间平滑地移动到高音区,其功能如图8所示。该程序使用的接口为View.OnSeekBarChangeListener,此接口用于SeekBar控件的事件监听器中,可以监听SeekBar控件变化前、变化中和变化后的动作。
六、Opiano的评价
Opiano开发完成后,为了评价其效果,我们随机选取年龄在6-12岁的学生,共计15人试用该软件,其中6-9岁的学生有10人,10-12岁的学生有5人。这些试用者之前都没有任何钢琴弹奏的经验。经过为期一个月的使用,年龄段在6-9岁的学生中有7人对钢琴演奏产生兴趣,能够利用这款软件演奏简单的曲目,这部分学生的比例约为70%;余下3人只是将其作为娱乐软件使用,但能经常使用。年龄段在10-12岁的学生中有2人对钢琴演奏产生兴趣,能够用比较规范的指法演奏简单的曲目;剩余的3人中有2人将Opiano作为娱乐软件使用,剩余1人则没有兴趣,很少使用。
根据上述结果可以看出,年龄段较小的学生容易对Opiano产生兴趣,学习效果良好;而年龄段较大的学生大部分是将Opiano作为一个娱乐软件使用,并没有继续学习的意愿。可见,对于钢琴的学习,年龄段越小的学生越容易培养出爱好,家长可以有意识地让孩子先接触模拟类移动软件以便发掘出孩子的兴趣,之后再购置真实的钢琴。这样,可避免因为盲目购置而造成的乐器闲置。Opiano提供的虚拟化学习环境和精心设计的教学内容,让53%以上的测试者沉浸在学习环境中,促使他们掌握初步的乐理知识和演奏技能。
七、结束语
由于Android系统的限制,本软件不能实现多键发声的功能。要想实现该功能,只借助Android提供的API是不够的,还需要借助硬件的数字合成技术,通过数字合成声音。下一步的研究可以着眼于此。
作者:蔡莉 吕兰 左继蓉 来源:中国教育信息化·高教职教 2016年3期