基于Qt的音乐播放器

2024-10-26

基于Qt的音乐播放器(共8篇)

基于Qt的音乐播放器 篇1

Android的音乐播放器数量众多,但总体而言水平参差不齐,因此开发出界面完善、功能完备的音乐播放器,具有广阔的市场前景。本文将分析国内外最有名的音乐播放器,并吸取其成功经验,深入分析用户的需要,设计出一款能够满足用户需求的基于android的音乐播放器。

1 音乐播放器的设计

用户需求是音乐播放器设计的出发点,因此在制作android的音乐播放器之前,必须了解用户对音乐播放器的功能性需求,从而在大量调查的基础上,开发出一个能够获得良好用户体验的android程序应用。

1.1 用户体验需求

基于android的音乐播放器必须满足移动终端的特点,为受众提供一个方便快捷的平台,一般来说,用户对界面的要求并不复杂,只要拥有简洁、易于操作的界面,基本就能够满足用户的需求。[1]同时,响应速度快捷也是android的音乐播放器的基本要求之一,android的音乐播放器出现卡顿现象,会影响用户的体验。此外,android操作系统是一个复杂的操作系统,因此如果音乐播放器无法适应多进程的操作,会导致音乐播放器在运行多个程序的情况下无法获得良好的衔接效果。Android操作系统存在更新的问题,并且每一个版本都有其独特的改进,如果android的音乐播放器无法与时俱进,适应android系统的更新速度,会影响该音乐播放器的正常运行。除此之外,还要求android的音乐播放器具有良好的兼容功能,能够播放多种音频文件,一方面,提高音乐播放器的兼容性,能有效地提高用户的使用体验。另一方面,提高音乐播放器的兼容性,能在一定程度上提高音乐播放器的歌曲容量,将音乐播放器在广度上提高一个层次。

1.2 功能需求分析

作为android平台的音乐播放器,必须在功能上满足用户的基本心理需求,例如在操作界面的设计上,要具有基本的用户交互的功能,这一部分是android平台的音乐播放器的关键部分,通常这部分被业界称为主播放界面。此外,列表的设计也是音乐播放器不可缺少的功能,用户可根据个人的喜好,将喜欢的歌曲进行分类,偏爱列表是推送功能的基础,因此这一部分被业界称为音乐库,音乐库的歌曲,可供个人下载或者在线收听。[2]一个音乐播放器的主界面通常由播放音乐/暂停音乐键、进度条、音量控制条、模式选择组成。这些功能既是音乐播放器的基础,也是设计android平台的音乐播放器的核心部分,因此要求相关工作人员能够设计出简洁并且吸引眼球的主界面。音乐库的主要功能是对各种列表进行管理,这些列表通常由最近收听列表、本地歌曲和自定义列表构成,全部歌曲列表是以列表的歌曲显示全部歌曲,包括本地歌曲,自定义列表与最近收听列表,通常作为主界面的主要条目显示。播放列表是用来对音乐库正在播放的歌曲进行管理,可依照个人的喜好来添加与删除,只要在主界面添加新建播放列表即可显示。

2 基于android平台的音乐播放器的制作方法

2.1 音乐播放器的层次构架

综上所述,基于android平台的音乐播放器通常由主播放界面、音乐库和下载管理器三大部分组成,在相关工作人员进行音乐播放器制作之前,需要将三者进行层次构架,分别为音乐播放层、音乐库层、下载管理层,并逐渐模块化,例如音乐播放层的主要功能模块是主界面模块,可执行音乐的播放控制功能。而音乐库层可与音乐主界面模块相互跳转,从而实现用户的基本操作,音乐库层除了对播放列表进行管理,还与网络相连,负责定期的推送。播放列表模块则包括添加与删除等功能。下载管理层与音乐库模块相连,是对在线播放和下载进行管理的部分,可实现歌曲的下载、保存、在线播放,并且在歌曲的下载过程中,还可现实歌曲的下载进度,并对下载完成的歌曲向用户发出通知。再细化下去,主播放界面还包括音量控制模块、暂停播放模块以及音乐进度条模块,共同完成对音乐播放的控制功能,此外为了更好实现对播放音乐的控制,还需要完善音乐主界面的顺序播放功能、随机播放功能以及循环播放功能。音乐库界面包含全部歌曲列表模块、自定义列表模块、新建列表模块。下载管理是由在线播放模块、下载进度条模块、下载列表选择模块与音乐搜索模块组成。[3]

2.2 兼容性测试

在音乐播放器基本构架完成之际,需要对音乐播放器进行兼容性测试,从而保证这个基于android平台的音乐播放器能够适应多种音频格式的播放,在技术层面上提高该音乐播放器功能的广泛性。首先,相关工作人员要采用程序自身解码的方式,在后台保证该音乐播放器能够兼容多版本的android系统。其次,要实现不同格式的音乐的播放,这不但依靠音乐播放器自身的解码功能,还要求软件本身具有一定的广泛性,能够进行稳定的音频播放。因此相关工作人员要从三个方面进行检测,首先要检测不同版本下的音乐播放的稳定性,其次要播放多种格式的音乐,最后要测试与不同的移动设备的兼容性。[4]

3 结语

综上所述,音乐播放器需要一个简洁、漂亮的界面,给使用者以更好地用户体验,还要求从播放器的功能性入手,保证该音乐播放器能够在android的技术框架下,实现功能的全面性和兼容性。

参考文献

[1]蒋斌.某数字音乐开放平台的设计与实现[D].中国科学院大学,2015.

[2]摆云.基于Android开放平台和无线通信网络的实时音视频传输系统设计与实现[D].兰州大学,2012.

[3]李玲玲.基于Android平台在线音乐播放器的研究与实现[D].安徽理工大学,2012.

[4]陈宽宜.基于Android平台在线音乐播放器的研究与实现[D].中国科学院大学,2013.

基于Qt的音乐播放器 篇2

摘要:利用Flash 中的ActionScript实现音乐播放器在多媒体设计中有广泛的应用。本文基于Flash CS4中的AS3,设计并制作一款音乐播放器,能够完成音乐播放、暂停、停止、播放进度显示、音量控制的功能。

关键词:元件;场景;ActionScript;音乐播放器;多媒体动画设计

中图分类号:G434 文献标识码:B 文章编号:1673-8454(2009)20-0067-02

一、设计播放器界面

利用Flash CS4的基本绘图工具和颜色填充工具绘制播放器的界面,注意设置尺寸值,播放进度槽、播放进度条、音量按钮宽度值分别为400、1、 6,音量按钮高度值为4,这些数值将与后面AS代码的有关数据相对应。分别将播放器界面背景、播放按钮、暂停按钮、停止按钮、播放进度槽、播放进度条、音量条、音量按钮转换成影片剪辑元件beijing、按钮元件1、按钮元件2、按钮元件3、影片剪辑元件4、影片剪辑元件5、影片剪辑元件6、影片剪辑元件7。在Flash场景中由下至上,把播放器界面背景、暂停按钮、播放按钮、停止按钮、播放进度槽、播放进度条、音量条、音量按钮分别放置在不同的图层上,通过属性面板的位置参数对齐暂停按钮、播放按钮的位置,使播放按钮正好放置在暂停按钮的上方,并在属性面板中为元件依次命名为“bj_mc”、“stp_btn”、“ply_btn”、“restart_btn”、“jdc_mc”、“jdt_mc”、“bar_mc”、“slider_mc”。如图1所示。

二、编写AS3代码

1.编程前的准备工作

(1)首先把音乐文件和Flash文件放置到同一个文件夹里,这样方便文件的调用。

(2)在时间轴上新建一个图层,命名为“action”。选择第一帧,单击动作—帧选项卡,打开动作面板,编写代码。这也是AS3和AS2的不同之处,AS3的动作是写到帧上,而不是写在按钮或者影片剪辑上。

2.调用外部音乐文件

(1)调用外部文件之前要声明一个实例s来继承sound类,输入:var s:Sound = new Sound();

(2)然后定义一个变量req,将音乐文件的路径信息赋给它,输入:var req:URLRequest = new URLRequest

("高山流水.mp3");

(3)实例s通过load()函数来调用音乐文件,输入:s.load(req);

3.播放按钮程序的编写

当鼠标单击播放按钮时,音乐开始播放,因此需要为播放按钮添加一个侦听器来侦听鼠标单击事件。单击播放按钮,调用clickhandle01函数。音乐播放的同时播放按钮会变成暂停按钮。音乐播放器有暂停功能,即当音乐暂停后,再次单击播放按钮时音乐会从暂停的位置继续播放,因此需要定一个变量pausePosition来记录文件播放暂停的当前位置。播放按钮程序编写如下:

var channel:SoundChannel = new SoundChannel();

var pausePosition:int = channel.position;

function clickhandle01(event:MouseEvent):void{

channel = s.play(pausePosition);

ply_btn.visible = false;

}

ply_btn.addEventListener(MouseEvent.CLICK,clickhandle01);

4.暂停按钮程序的编写

当鼠标单击暂停按钮后,音乐会暂停播放,同时暂停按钮会隐藏,播放按钮会显示出来。同样需要为暂停按钮添加侦听器,当单击暂停按钮时,调用clickhandle02函数。音乐播放暂停之后,需要记录当前音乐的位置,将值赋给pausePosition,这样再单击播放按钮时,音乐就会从停止的位置继续播放。

function clickhandle02(event:MouseEvent):void{

pausePosition=channel.position;

channel.stop();

ply_btn.visible = true;

}

stp_btn.addEventListener(MouseEvent.CLICK,clickhandle02);

5.停止按钮程序的编写

停止按钮和暂停按钮有区别,停止是回到正在播放文件的开始并且停止,暂停是停止在文件的当前处。为播放器停止按钮添加一个侦听器来侦听鼠标单击事件,如果单击停止按钮,调用clickhandle03函数。

function clickhandle03(event:MouseEvent):void{

pausePosition = 1;

channel.stop();

ply_btn.visible=true;

}

restart_btn.addEventListener(MouseEvent.CLICK,clickhandle03);

6.播放进度显示程序的编写

当音乐不断播放时,进度条就会变长,Event.ENTER_FRAME可以定时地响应。在onEnterFrame函数中,定义一个中间变量playbackPercent,表示音乐播放的当前位置和音乐文件长度的比值。已知音乐播放槽的长度为400,这样随着音乐的播放,在x轴对播放进度条进行放大即可。

addEventListener(Event.ENTER_FRAME,onEnter Frame);

function onEnterFrame(event:Event):void {

var playbackPercent:uint = channel.position / s.length;

jdt_mc.scaleX=playbackPercent *400+1;

}

7.音量控制程序的编写

当用鼠标按下音量控制按钮时,可以拖动该元件,当鼠标松开的时候,元件停止在该处。按钮只能在音量条上横向移动,不能超出音量的宽度范围。因此需要给音量控制按钮添加三个监听器,一个监听当鼠标按下时,一个监听当鼠标松开时,一个监听当鼠标拖动音量按钮时。

当鼠标按下时的程序:

slider_mc.addEventListener(MouseEvent.MOUSE_ DOWN,clickHandle04);

function clickHandle04(event:MouseEvent):void{

slider_mc.startDrag(false, newRectangle(bar_mc.x,bar_mc.y,bar_mc.width-6,bar_mc.height-4));

this.stage.addEventListener(MouseEvent.MOUSE_ MOVE,volumeOnmove);

}

接着为滑块添加一个侦听器来监听鼠标的松开:

slider_mc.addEventListener(MouseEvent.MOUSE_ UP,clickHandle05);

function clickHandle05(event:MouseEvent):void {

slider_mc.stopDrag();

this.stage.removeEventListener(MouseEvent.MOUSE_ MOVE,volumeOnmove);

}

当鼠标拖动滑块进行移动时,执行volumeOnmove函数。

function volumeOnmove(event:MouseEvent):void {

var num:Number=slider_mc.x-bar_mc.x;

var volumeNum:SoundTransform=new SoundTransform ;

volumeNum.volume=num/bar_mc.width;

channel.soundTransform=volumeNum;

}

至此,一款具有播放、暂停、停止、播放进度显示、音量控制功能的音乐播放器就制作完成,有兴趣的读者可以在此基础上实现更复杂的功能。

参考文献:

[1]http://bbs.jcwcn.com/thread-259025-1-1.html.

[2]Adobe 公司. Adobe Flash CS4 中文版帮助文档 http://help.adobe.com/zh_CN/ActionScript/3.0_Programming

AS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d12.html.

[3]Adobe 公司. Adobe Flash CS4 中文版帮助文档http://help.adobe.com/zh_CN/ActionScript/3.0_Programming

基于Qt的音乐播放器 篇3

关键词:语音识别,技术,音乐播放器,设计

目前,人类实现了由传统靠键盘和按键控制机电、计算机系统的生活作业模式到通过语音识别技术控制机电和计算机系统的飞跃。语音识别技术的播放器设计过程实际是实现语音智能控制音乐播放器的技术。很长一段时间,人机对话通过数字领域的“手动操作”来进行,这种交流方式将人与机电系统和计算机系统之间的交流变得狭隘,人与机器只能通过数字量或者数字转换形式在近距离的空间里进行交换。语言本是人类最基本的沟通交流工具,在日常活动中,人们通过语言进行信息传递。语言能承载很大的信息量,具有较高的智能水平,在以后的探索中,它是实现机电系统和计算机系统向人一样能感知、能表达的发展方标。一般的播放器都是通过手动来调节,这种操作形式不仅使硬件设施老化迅速,还给手脚不方便的使用者带来很多麻烦。有人预测,语音识别技术在10年之内将迅速进入家电、通信、家庭、汽车及工业等领域。

1语音识别技术的发展现状

语音识别技术最早出现在50年代,AT&T Bell实验室研制的可识别十个英文数字的语音识别系统标志着语音识别技术时代的到来;60年代的重要成果就是用动态规划方法来解决语音识别中不等长的对正问题;70年代,取得了突破性的进展,研制出了基于线性预测倒谱和DW技术的特定人孤立语音识别系统,80年代,HMM模型和人工神经元网络在语音识别系统中的应用使语音识别研究进一步加深;90年代,伴随着多媒体的到来,迫切要求语音识别系统从实验室中走到现实生活中。许多发达国家的著名工资投入巨资在语音系统地实际应用开发中,现今,是市场上出现了语音识别电话和语音识别笔记本电脑等产品的身影,尤其在家电方面应用广泛。

2语音识别技术

2.1语音识别技术定义

语音识别技术是让机器通过识别和理解将人类的语言信号转换为相对应的文本或者命令的技术。语音识别是一门与声学、与声学、语音学、语言学、数学信号处理理论、信息论、计算机学科等众多学科紧密联系的综合学科。它是人和机器交流的一项重要工具,目的在于让机器听懂人类的语言,是机器智能化的一个重要表现。语音识别与人的说话方式、说话语速、说话内容和不同的环境情况有关,语音信号本身的多变性、波动性,持续性、瞬间性在某种程度上增加了语音识别的困难。

2.2语音识别类别

2.2.1按照识别单位划分

包括音素识别、音节识别、孤立局识别、语音理解、识别的单词之间由停顿和连续的识别等。

2.2.2按照词汇识别量划分

包括10-50个的小词汇、50-200个的中词汇、200个以上的大词汇等。

2.2.3按照说话对象的划分

包括固定说话人、多个说话人、不关联说话人的人。其中固定说话人的语音识别比较简单,识别率较高。多个说话人和与说话人无关的语音识别系统的应用范围比较广,实用性较高,但难度系数也是比较大的,识别率不是太高。但是后两者的使用价值比固定说话人的价值更大。

2.2.4按照识别方法分

大体包括概率语义分析法、随机模式法、模板匹配法,还涉及到人工神经网络语音识别和语法是语音识别等。现今,语音识别在连续语音、不是固定人、大量词汇方面发展较多并且取得了一些突破性的成就,如以HMM为构架,构建识别系统模型。

2.3语音识别基本原理

现在大多数语音识别系统都采用模式匹配原理。将待识别的语音先经过话筒转换成为语音信号,然后从识别系统顶端输入,在进行预处理。特征提取部分用来提取语音识别信息中能够代表本质的声音参数。通常训练在识别之前进行,通过讲话者反复重复语音,最初语音样本中除掉多余信息,保留关键数据来实现。模式匹配时语音识别系统的中心,它是根据专家知识和一定的准则计算出输入特征和库存模式之间的近似度,推断出输入语音所要表达的意思。

2.4语音识别的瓶颈

语音识别虽已有50多年的发展史,但在语音识别系统的实际应用中还是碰到了瓶颈,具体表现在依赖外在环境条件和只能在安静的环境下工作。语音识别系统一旦在吵闹的环境下工作,会发生声音失真、发音速度和音调变动的不良现象,一般通过谱减法、环境技术调整、修正识别模型、建立噪声模型这四种手段进行整顿。要想跨过以上瓶颈我们在实际的应用研究中应慎重选择语音识别基元,提高端点检测技术,在语音识别系统中结合韵律信息(说话人的重音、语调等)。

3音乐播放器设计

音乐播放系统实际是多媒体技术在社会生活中的实际应用。多媒体是指能够同时获取、处理、编辑、存储和展示文字、声音、图片、动画、视频等两种不同信息媒体的技术,简而言之,多媒体是一种技术。计算机技术和信息处理技术的发展 , 极大的提高了人类处理多媒体信息的能力。

音频播放系统可以通过音频硬件的自动检测和使用加速,来控制媒体的播放,也可支持没有硬件加速的系统。它所支持的媒体格式包括MP3、WAVE、AVI、DV,这都是我们生活中常用的格式。特别重要的是它可直接支持DVD播放,并且提供的是一种开放式的开发环境。

4 基于语音识别技术的单片机音乐播放器设计

4.1 基于语音识别技术的音乐播放器的硬件设计

4.1.1音乐播放器系统设计

该音乐播放器系统由音频输入和音频输出两个模块组成,音频输入是为实现语音信号识别,音频输入是为实现播放。现提出方案如下:

这一方案件简单易行,节约了很多电路结构。只要注意在语音录入时加入麦克风电路,在语音输出时外接功放电路即可进行实现语音播放功能。

4.1.2音乐播放器电路设计

音乐播放器单片机电路设计

单片机的主电路主要包括晶振,锁相环,复位电路等外围的基本模块。

音乐播放器电源电路设计

通过电池盒提供给的4.5V直流电压经由SPY0029后产生3.3V给整个系统提供电量。SPY0029是一个电压调整IC,引用CMOS技术,它的静态电流低,驱动能力较强,线性调整突出。

音乐播放器键盘调控电路设计

因为该音乐播放器是双重模式控制,除了语音控制播放器外,还有播放,开关机,暂停,停止,上一首,下一首六个按键控制播放器模式。

4.2 音识别技术的音乐播放器的软件设计

在较早的程序设计中都是采用不同的软件来进行处理,研制人员得在几种软件中来回转换使用,例如先用文字处理软件编辑源程序,再用链接程序进行函数处理,最后用编译程序进行编译。现在的研制人员将编辑、翻译、处理等功能放在了一个桌面环境里,这在无形之中给使用者带来了很多的方便。

4.2.1音乐播放器的集成开发环境

该集成开发环境支持16位单片机系列、语言汇编、C语言混合编程的程序开发。它为使用者提供完整的交互桌面,操作简单,调试工作便于进行,他所提供的软件仿真功能可以在脱离仿真板的条件下,模拟硬件部分功能。该开发环境的主口操作界面由六部分组成 : 主菜单、工具栏、工作区、输出去、编辑区、状态栏。

4.2.2 音乐播放器的训练命令程序设计

通过特定发音人训练播放器识别播放、暂停、停止、上一首、下一首这五种命令。

当检测到训练标志位内容为非训练时,这就要求训练者对它进行训练操作。获取结果一般经过两次训练。以训练音乐播放器暂停为例,播放器先会提示操作者输入第一条语音指令,此时训练者说出暂停命令,然后播放器会提示请再说一遍,训练者按照提示再说一遍,只要两次暂停的声音差别不是太大,播放器就会成功建立模型,这时暂停命令训练已经成功,若未能成功建立模型,播放器会提示失败原因,只要注意原因重新训练即可。暂停指令训练成功后,会自然给出下一条有待训练方式。依照按键顺序完成全部训练,训练结束后,子程序返回。

5结语

本文通过对基于语音识别技术的SPCE061A单片机音乐播放器设计分析,有力的证明了语音控制音乐播放器的实用性,通过该项技术我们可以简单轻松的对已经开机的播放器进行播放、暂停、停止、上一首、下一首等模式的命令。与传统的按键控制播放模式相比,其优势是显而易见的。

基于Qt的音乐播放器 篇4

一、系统硬件设计

(一) 总体设计方案

本系统以AT89C51单片机为控制核心, 以按键开关作为控制元件, 以扬声器为执行部件, 再利用晶振电路构成音乐播放器系统。利用AT89C51产生乐曲音符, 再把乐普翻译成绩算计音乐语言, 由单片机进行信息处理, 在经过信号放大, 由喇叭放出乐曲声。由于音符和节拍是由计算机产生的, 所以发音音符和节拍准确。

(二) 单元设计电路

1. 单片机简介。

AT89C51单片机内部有4KB的片内ROM和128B的片内RAM, 由于51系列单片机是低电压, 高性能CMOS的8位单片机, 片内置通用8位中央处理器和Flash存储单元, 内置功能强大的微型计算机AT89C51提供了高性价比的解决方案[1], 内含4k bytes的可反复擦鞋的制度程序存储器 (PEROM) 和128bytes的随机存取数据存储器 (RAM) , 器件采用ATMEL公司的高密度、非易失性存储技术生产。

2. 晶振电路。

晶振电路由两个30p F的电容和一个12Mhz的晶体振荡器组成。节点1与单片机的XTAL2 (18引脚) 相连接。节点2与单片机的XTAL1 (19引脚) 相连接。

3. 显示电路。

显示电路是一个4位共阴极LED数码管。单片机的P1.0-P1.7分别与数码管的A、B、C、D、E、F、G、DP相连接。单片机的P2.0与数码管片选段4相连接。

4. 复位电路。

由于音乐播放器复位需要由手动按钮来实现的, 手动复位要人为在复位输入端RST上加入高电平 (5V) , 通常采用在RST端和正电源Vcc之间接一个按钮。按下按钮时, 则Vcc的+5V电平就会直接加到RST端。人为的动作使按钮保持接通达数十毫秒, 既能够满足复位的时间要求, 又能满足音乐播放器的外观设计。

5. 键控电路。

有三个按键:播放/暂停、下一曲、上一曲;4位LED灯显示器, 用来显示所选曲目, 该显示器在音乐播放中关闭, 一曲演奏结束时, 或选曲时才显示曲目信息。

6. 发声电路。

音乐播放电路主要功能就是发声, 就需要从单片机T0/3.5口的定时器送出脉冲调制方波信号, 经三极管NPN放大后传输至蜂鸣器输出发出乐曲声。[2]同时, 需要加限流电阻防止电流过大烧坏三极管及蜂鸣器。通过三极管可以控制流过蜂鸣器的电流达到我们想要的功率。

7. 电源电路。

电源电路采用LM7805集成稳压器作为稳压器件, 220V电源整流滤波后送入LM7805稳压, 在输出端接一个470U和0.1U电容进一步滤除纹波, 得到5V稳压电源。

二、系统软件设计

(一) 总体流程

主程序实现对单片机进行初始化后, 进入曲目识别子程序, 进行歌曲曲目判断。确定歌曲曲目后, 数码管再进行显示。然后, 子程序对是否播放进行循环判断, 得到播放中断的指令后再进行播放。

执行播放后, 关闭数码管显示并调用查表子程序进行播放音乐。在播放音乐的过程中, 查表子程序循环判断音乐是否结束。当音乐结束时, 程序跳转回曲目识别子程序。

(二) 音乐产生原理

音调表示一个音符唱多高的频率, 节拍表示一个音符唱多长时间, 单片机演奏音乐基本是单音频率, 它不包括相应幅度的谐波频率, 因此产生音频脉冲, 必须算出某一音频的周期 (1/频率) , 然后将此周期除以2, 即为半周期的时间。[3]

三、总结

音乐播放器很好地实现了播放/暂停、上一曲、下一曲的功能, 同时满足了数码管显示的特殊要求, 效果良好, 达到预期目标, 能很好听出乐曲的曲名。

参考文献

[1]黄振杰, 卢小冰.基于AT89S52单片机的多功能音乐播放器[J].电子设计工程, 2009 (2) .

[2]李军.便携式MP3播放器的方案分析及其技术研究[J].电声技术, 2004 (7)

基于Qt的音乐播放器 篇5

Android是一种基于Linux的自由及开放源代码的操作系统, 主要使用于移动设备。采用分层的架构, 分为应用程序层、应用程序框架层、系统运行库层和Linux内核层。系统有四大组件, 它们是Activity、Service、Content Provider、Broadcast Receiver, 其中Activity和Content Provider是可见视图, Service和Broadcast Receiver是不可见的, 只在系统的后台运行。搭建Android的开发环境首先要安装Java环境, 即安装JDK, 设置环境变量, 安装Eclipse开发工具, 之后要到SDK官网上下载SDK包, 进行解压安装。Android平台的优势在于开放性, 不收束缚, 丰富的硬件, 方便开发, Google应用等优势, 为广大程序开发者所青睐。

2 系统的需求分析

软件需求是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望, 是通过对应用问题及其环境的分析与理解采用一系列的分析方法和技术将用户的需求逐步精化, 最终形成需求规模说明文档的过程。主要的需求有:歌曲下载、歌曲添加、歌曲播放、歌曲暂停、进度控制、上一曲、下一曲、音量控制、歌词显示等。

3 系统的功能分析

结合音乐播放器所要实现的内容, 列出用户操作的模块, 其中每个模块对应一个功能。用户启动程序进入主界面, 用户可以通过添加模块添加本地歌曲, 可以按首添也可以添加整个歌曲文件夹, 通过播放列表用户可以实现对歌曲的查找、播放、暂停、音量调节、静音, 通过歌词模块可以实行歌曲歌词的显示、比对、歌词字体选择。

4 系统的概要设计及编码实现

4.1 系统的概要设计

主要划分为以下七个功能模块, 每个功能模块的作用描述如下:

4.1.1 播放控制:控制歌曲的播放状态, 如:播放、暂停、上一曲、下一曲。

4.1.2 文件控制:主要用来打开本地播放文件。

4.1.3 歌词控制:播放音乐时控制是否显示歌曲歌词。

4.1.4 进度控制:显示当前歌曲的播放总时长和已播放时长, 通过进度条和时间的同步显示。

4.1.5 声音控制:调整歌曲音量的大小, 显示是否静音。

4.1.6 下载控制:可以联网下载自己喜欢的歌曲、歌词。

4.1.7 音乐剪切:对音乐文件进行剪切。

4.2 系统的编码实现

4.2.1 编写音乐播放器主界面fragment_main.xml, 歌词列表模板的制作musik_item.xml。

4.2.2 Main Activity文件中声明音乐播放器主界面frag-ment_main.xml中的所有控件, 并在on Create方法中进行初始化。Main Activity中声明数据源String[]data, 并在on Create方法中初始化。

4.2.3 编写一个适配器, 实现List View按照musik_item.xml模板要求把data数据逐行显示。其中重点是适配器类的编写。

4.2.4 在Main Activity中添加按钮点击事件On Click Listene接口, 并进行注册 (主要有4个播放, 下一个, 上一个, 实现播放模式按钮) 。在Main Activity中添加按钮点击事件On Item Click Listener接口, 并进行注册 (主1个List View, 用于选择列表中歌曲进行播放) 。创建一个Service类的一个子类Play Music Service, 把其中的创建、启动、注销方法进行重写。在Main Activity中使用Intent激活此Service。在Main Activity中的on Click按钮点击方法中, 当按下播放、上一首、下一首、播放模式按钮是分别发各自不同的广播, 目的是通知PlayMusic Service接收到此广播实现相应的功能。Play Music Service类中的on Create () 方法中对Main Activity中发来的广播进行接收, 使用register Receiver (receiver, filter) 方法, 其中receiver为Broadcast Receiver的子类, 需要写个内部类, 从而在Broadcast Receiver的子类的on Receive方法中对接收的广播进行处理。

Play Music Service类中内部类Broadcast Receiver的子类中on Receive方法中对接收的广播进行处理。

4.2.5 进度条, 播放时间和总时间的更新操作, 需要在Play Mu-sic Service类中使用多线程技术, 每个1秒给Main Activity放更新进度条的广播, Main Activity接到次广播进行实时的更新。具体做法如下:

(1) 写一个类Upadate Thread实现多线程, 重写run () 方法, 每隔1秒发布一次广播, 通过此广播把相应的信息也要传出去。例如:歌名, 歌曲的现在已播放时间, 歌曲的总时间等。

(2) Main Activity的on Create () 方法中进行接收次广播, 接收的实现方式与Play Music Service类中方式一样, 这样就能实现进度条等信息的实时更新。

最后, 分别在Main Activity类、Play Music Service中的on Destroy () 方法中要写上unregister Receiver (receiver) 以实现播放结束后删除广播。

5 结论

本文介绍了Android操作系统发展历程, 讨论了基于Android平台应用程序开发的关键技术, 对音乐播放器做了详细的需求分析, 并详细介绍了音乐播放器的总体设计, 包括音乐播放器的架构设计、功能模块等。重点阐述了音乐播放器核心模块即音乐播放主界面模块、音乐库模块、后台音乐服务模块, 其中对几个核心组件Play Activity、Play Back Service、Library Activity的设计思路、交互过程、通信机制、消息机制、生命周期、界面设计等做了详细的介绍。本文通过对基于Android平台上音乐播放器开发与实现的介绍, 希望能为今后开发出功能更强大的移动设备多媒体播放软件提供有益的借鉴。

参考文献

[1]李飞.基于Android的MP3播放器的设计与实现[D].北京:北京邮电大学, 2011.

[2]张舒.基于Android平台的无线传感器应用层开发[D].北京:北京邮电大学, 2012.

基于Qt的音乐播放器 篇6

在对Android手机音乐播放器设计结构理念中, 主要满足当前用户的设计需要。在界面设计和软件结构构件上不断创新, 笔者在此分析了Android应用平台的构架结构, 包括应用程序的结构设计和手机音频结构的设计;在软件应用程序需求上也进行了分析, 对软件设定功能的需求以及软件界面的创新设计需求, 满足当今用户主体对音乐播放器软件程序的设计需求。在设计界面上采用UI数据模型的结构, 使操作流程简化;在软件应用程序上采用了嵌入式的应用平台, 保证传输音质的质量以及减少占用CPU的大小。在手机音乐播放器整体系统设计结构中, 对播放器的功能的设计、功能的流程分析以及功能时序图的设计也进行了简要的分析, 以便于为今后Android应用系统开发的设计人员提供可参考性的结构。

1 Android系统应用平台构架结构

Android系统应用平台按照构架层次可分为四层, 分别为程序编码层、程序应用层、运行系统数据层以及程序运行核心层。四层结构主要完成数据结构的抽样、量化、编码, 抽样是对传输数据结构频率的抽取, 数据包在传送时要经过带通滤波器完成对数据信号频率的抽取, 抽取的频率为8000Hz。量化就是对Android系统中模拟的信号转化为数字信号, 保证幅值不发生连续的变化, 编码便是对抽样和量化后的信号进行编码, 完成在数字传输信道的传输。

1.1 Android应用系统布局的设定

Android系统在设计开发时, 会根据应用程序设定一些专用的数据包, 包括:界面管理、日历、通讯录、计算器、邮件接收装置以及地图查询等。

在音乐播放器界面设计流程中基于六个设定目标的程序进行设计, 其中在界面的最上端为隐藏窗口的设计, 用户在搜索项目列表时, 点击屏幕的最上端, 则小窗口便会浮现出来。在规定时间内若是没有响应变化, 则该窗口便会自动隐藏。下面便是封面的设计流程, 按照所选模式类型的不同分为水平界面模式、垂直界面模式以及3D立体界面模式。播放程序的设计, 分为单曲循环模式、随机模式、列表顺序模式, 用户在选定播放的歌曲时, 可按照不同进度进行调整。第四个便是本地搜索按钮, 当小窗口没有浮现在界面管理器时, 用户可点击自行设定的搜索按钮, 也可搜索出本地的项目组。第五个操作按钮为播放进度按钮, 用户可自动调节音乐播放快慢得节奏, 减缓等待时间。第六个操作按钮为音效调节按钮, 播放器中播放音效的效果有流行音乐、古典音乐、爵士乐以及轻音乐, 这样可以满足用户对不同种音质的调整。

1.2 Android音频构架结构的设计

Android音频构架结构的设计是根据Linux中ALSAD的设定程序进行设计, 在原有的基础上加入了混响效应, 音频驱动设定在内核应用处理程序中, 驱动库在S0C音频系统调解下, 进入到Audio射频硬件数据层, 处理音频的数据结构, 按照音频的不同调节程度范围, 分为左音频、右音频、立体音频。三种逻辑结构的设计是根据用户听音乐不同的节奏进行调制, 对于左音频的设计主要对定调频率的节减, 减少多余的冗余数据, 使之处于高保真的效果。右音频是针对音频硬件中输入电流的控制, 右端的射频端点的幅值高于左端点临界的幅值, 保持水平状态向前传输。立体音频是Android应用层的调制结构, 在SRC和HAL调制语音信道的带宽, 增大传输带宽的占有量。使在两边能产生音质的共鸣, 混音器的混音程度才能减至最低。

2 手机音乐播放器模块系统的设计

2.1 音乐播放器功能的设计

音乐播放器的主要功能设计包括暂停、停止、歌曲搜索、当前播放进度以及歌曲信息的查询等。其中曲目的搜索查询主要是为了能够满足用户能够在短时间内搜索到查询的曲目, 在Android应用程序系统中, 把嵌入式的设计结构与曲目的单字码片信息融合在一起。即在xml的后缀名中包含了曲目的关键信息, xml主要用于数据库信息的检索, 只要在数据库内保存的数据, xml便能在短时内获取根源的有效性信息, xml系统还能完成对数据库的扩充, 使数据逻辑结构都够完全映射到应用层, 保证数据信息的独立性。按到播放器菜单单选钮的设计可分为3D交互的投影模式、列表水平模式、垂直模式以及按照信息量排版的模式, 3D交互的投影模式是将节目信息以立体投影的方式展示给用户, 再设计上采用了数轴的设计结构, 包括X/Y/Z轴偏向角的设定, X轴与Y轴之间的偏向夹角为45度, Z轴所在的平面为向量X与向量Y的差乘。

2.2 音乐播放器功能时序图

音乐播放器的功能时序图是根据UML程序进行设定的, 按照功能进程的顺序进行排序。当一种程序运行时, 下一个程序的命令代码便会随机触动, 使整个模块的交互集中在一个操作命令程序上 (图1) 。音乐播放器的时序图包括主页面运行程序的设定、播放音乐次数的设定、界面管理运行的设定、播放顺序程度的设定、画面转变模式的设定、数据信息切换模式的设定以及核心系统运行程序的设定。主页面运行在Android应用程序中完成数据信息的集成, 将播放数据的列表集成在xml系统中, 这样系统在读取数据信息时便会简化检索的范围。用户点击音乐模式, 便会自动进入到播放列表中, 最后切换到应用版块播放器上, 播放点击的歌曲。

3 结语

通过对Android手机音乐播放器的设计与实现, 用户可以根据自身的需要点击曲目, 设定的界面流程可以对播放的曲目自动调整, 并且还会获取终端设备有效性的数据信息。在时序图中按照操作流程顺序进行曲目的加载和删除, 这种开发的应用平台解决了大部分操作流程。

参考文献

[1]赵国安, 郁斌.基于Linux嵌入式原理与应用开发[Z].北京:清华大学出版社.2007, 12 (7) :11-12.

[2]张东升, 陈兴林.多任务技术在嵌入式系统中的应用[J].北京:机械工业出版社, 2004, 21 (24) :7-8.

[3]薛炯隽, 周玲玲, 唐卫国.使用UML的嵌入式软件系统需求描述[J].项目管理技术, 2009 (S1) :467-471.

[4]余兰.浅谈如何利用均衡器来改善音质[J].技术与艺术, 2007, 41 (18) :15-17.

[5]朱立松, 毋国庆, 等.嵌入式实时系统的软件需求检测[J].软件学报, 2002, 5 (13) :33-35.

基于FPGA音乐播放器设计 篇7

计数器是数字系统中应用较多的基本逻辑器件[2,3], 它的基本功能是实现计数操作, 它也可用与分频、定时、产生节拍脉冲和脉冲序列等。分频器是将不同频段的声音信号区分开来, 分别给于放大, 送到相应频段的扬声器中再进行重放。

2 算法模块设计

系统由5个主要模块组成, 即PLL锁相环模块, 音乐ROM模块, 分频预置数模块, 地址发生器模块, 数控分频模块, 每个模块均利用Verilog语言编写而成。

2.1 PLL锁相环模块和地址发生器设计

本文设计的乐曲演奏电路应用的Cyclone/II/III等系列[4]的FPGA中含有高性能的嵌入式模拟锁相环。此锁相环PLL可以与输入的时钟信号同步, 输出一个至多个同步倍频或分频的片内时钟, 以供逻辑系统应用。

地址发生器模块设置了一个8位二进制计数器, 作为音符数据ROM的地址发生器, 每来一个时钟信号 (Clk) , 8位二进制计数器就技术一次, ROM文件中的地址也就随着递增, 数据ROM中的音符也就连续的取出。

2.2 数控分频模块和音乐模块设计

音符的频率由数控分频模块获得, 这是一个数控分频电路。在计数器的输入端给定不同的初值, 二次预置数就是计数初值, 就可以得到不同音符的发音频率信号。音乐模块存放乐曲中的音符数据, 它是利用LPM-ROM来实现的, 将乐谱中相应的音符放在一个连续的地址, 具体电路如图1所示。

3 仿真结果

系统利用QuartusⅡ自带仿真器, 采用ALTERA公司高性价比的Cyclone系列EP1C6Q240C8芯片。下面对仿真结果进行综合分析。其仿真结果如图2所示。

4 结论

本文分析了乐曲演奏设计中音符、频率、节拍与编码的相互关系, 实现了基于FPGA片上系统动态显示乐曲演奏器的设计。经过编译、仿真、综合等各项测试可以得出结论:可在短时间内设计出高效、稳定、符合设计要求的电路。

摘要:本文设计了一种在EDA开发工具Quartus II平台上[1], 采用Verilog语言及原理图的设计方法的基于FPGA的乐曲演奏电路, 采用ALTERA公司Cyclone系列型号为EP1C6Q240C8的芯片为FPGA控制核心芯片。

关键词:FPGA音乐播放器,电路原理,设计

参考文献

[1]张庆玲, 杨勇.FPGA原理与实践[M].北京:北京航空航天学出版社, 2006

[2]刘睿强.FPGA应用技术及实践[M].北京:北京理工大学版社, 2011

[3]袁海林.基于FPGA的具有存储功能的电子琴的设计[J].国科技信息, 2007, (19)

基于Qt的音乐播放器 篇8

本文描述了基于Android手机平台的音乐播放器开发, 为Android使用者提供更多的选择, 尽量能够满足用户个性化的要求, 使用户的手机更加显得生动灵活, 达到让用户真正的随时随地处于音乐的旋律中。

1 Android结构组成

Android操作系统主要有4部分组成:[3]:Activity (活动) 、Service (服务) 、Broadcast Intent Receiver (广播) 、Content Provider (数据提供者) 。虽然系统由以上部分组, 但这并不意味着每一个Android应用程序都需要这四个模块, 是否需要以上各部分主要由软件业务来决定。在某些时候, 只需要这四种中的几个组合成相关的应用。各个组件模块之间要进行切换必须通过一个意图Intent类来实现, Start Intent () 方法主要用来在各组件之间进行跳转。Android布局如同是一个承载组件的容器, 组件不同放置方式决定了应用界面是否友好, 便于操作。因此, Android布局是系统开发中的一个重要环节, 在Android软件开发过程中, 主要有五种布局方式, 它们分别为:Frame Layout (框架布局) , Linear Layout (线性布局) , Absolute Layout (绝对布局) , Relative Layout (相对布局) , Table Layout (表格布局) 。以上布局方式可以相互嵌套, 以便组成各种不同的应界面。线程也是Android系统的一个重组成部门, Android级线程之间通信主要通过中介类Handler来实现。SQLite数据库是Android自带的一个小型的数据库, 由于它占用资源非常低, 所需内存非常小, 一般仅需要几百K的内存就够用, 适合在Android移动平台或嵌入式设备中使用。

在集成开发工具Eclipse上集成了插件ADT, 以便用于Android系统的软件开发。当一个Android程序启动时, Eclipse会启动一个模拟器, 模拟器用于模拟当前手机硬件基本功能和相关的基本操作。

1.1 基于Android开发的软件目录结构

Android工程目录基本结构[4]主要包括:src (程序源代码) 、gen目录、assets (系统所用到的如mp3、视频类等文件) 、Res (资源文件) :主要存放程序界面的布局配置 (.xml) 文件和图片资源。Android Mainfest.xml是四大组建的驱动配置文件, 有它的存在, Android程序的四大组件才可以正常的跳转。在gen目录中有个R.java文件, 通过它可以快速定位需要的资源, 同时编译器检查R.java列表中的资源是否被使用到, 如果没有被用到, 该资源将不被编译到软件中, 以便减少应用程序占用的空间。

1.2 Android Mainfest.xml文件

Android Mainfest.xml项目中的总配置文件, 用于记录程序中所使用的各种组件。每个Android应用系统都要使用Android Mainfest.xml来引导启动, Android Mainfest.xml文件由新建的工程项目都会自动生成, 它也是整个应用系统能够正常运行的核心, 其中包含了Android SDK的版本。

2 系统具体实现

2.1 系统功能图

本系统的主要功能有播放音乐、搜索音乐、解析歌词、接受广播。其中播放音乐主要包括的子功能有上一首、下一首、暂停功能、播放功能, 搜索音乐则包括搜索媒体歌曲和媒体歌词, 解析歌词则就是解析LRC歌词, 接受广播则是进行播放服务和接收音乐服务。系统的整体结构图如图1所示。

2.2 音乐播放器E-R图

音乐播放器的内容主要组成是播放列表、歌曲数目。而播放列表的属性是歌曲的名字和编号, 由歌曲组成, 歌曲的属性则包括曲目号码、大小、艺术家、专辑、歌曲名字、发行库、流派等, 如图2所示:

2.3 数据库连接

Android自带SQLite数据库, 是用C语言编写的开源嵌入式数据库, 支持SQL92标准, 同时可运行在所有主流操作系统上运行。SQLite运行资源占用少、性能良好并且管理几乎零成本, 因引在嵌入式数据库开发方面应用非常广泛。如Android、i Phone都内置了SQLite数据库。当编写相关数据库引代码后, Android会在/data/data/[PACKAGE_NAME]/databases目录下生成一个“music.db”的数据库文件。在本文中, 定义Music DBHelper extends SQLite Open Helper类实现数据的基本操作。当需要打开一个数据库连接并获得数据库对象时, 首先根据Music DBHelper创建一个辅助对象, 然后调用该对象的get Writable Database或get Readable Database方法获得SQLite Database对象。

3 播放器系统功能详细设计及编码

3.1 音乐播放器主界面功能实现

3.1.1 播放器主界面

在Android应用系统中, 用户界面框架 (Android UI Framework) 使用了MVC (Model-View-Controller) 模型, 即处理用户输入的控制器 (Controller) 、显示用户界面及应用程序的视图 (View) , 和保存数据的模型 (Model) 。用户界面通过布局配置文件进行布局, 该文件包括各种布局方式和各种资源文件, 如图像、文字、颜色等。程序通过代码对各种配置数据进行操作, 以便形成不同的可视化用户界面和绚丽的视觉效果。播放器主界面由一个Activity组成[5], 每当Android应用程序启动时, activity首先执行On Create () 方法, 通过该方法执行用户界面的初始化操作。Activity有个专门用于布局的方法:Context.set Content View (String musiclayout Res ID) , 参数为要加载的资源ID, 该资源存放在工程目录res/layout下, 在本文中, 用户主界面布局文件被命名为music_rack, 下面为musicrack.xml布局文件代码结构如下:

在本文中, 通过绝对布局里嵌套两种线性布局勾勒了该音乐播放器的用户界面轮廓, 其中实现了歌曲的标题和歌曲名的显示位置, 布局设置布局的来显示歌曲标题的绝对坐标位置。在每个布局内可以设置多个Widget (窗体组件) , 如:、等。每个窗体组件内可以有多种属性, 用来设置该窗体组件的坐标、大小、背景和颜色等参数。在该音乐播放器的用户界面中, 歌词显示为居中, 下面是歌词的显示的实现代码:

3.1.2 播放界面音轨的实现

在Android系统中, 自带有播放音轨的组件, 但该组件不能从外观界面和从功能上考满足用户的实际需求, 为了实现用户的使用要求, 因此本文自定义一个Lookfor音轨进度条, 其实现的代码如下:

上面的参数中android:thumb="@drawable/media_player_progress_button"为加载音轨进度条的图片资源。android:progress Drawable="@drawable/seekbar_img"为进度条引用的风格。android:layout_width="fill_parent"指定进度条的宽度为充满整个屏幕, 而android:layout_height="wrap_content"指定进度条的高度为适中, 根据显示所需的大小进行变化。

3.1.3 播放器播放、暂停、停止等功能实现

在Android操作系统中, 已经封装了一个命名为Media Player的音乐播放接口[6], 该接口在执行时需要一个数据源。在本文中播放的功能主要分两部分实现:首先执行开始按钮的监听操作和通过intent调用歌曲信息;再调用play () 方法进行播放。同时可在Music Player中发出音乐调用pause () 暂停或调用stop () 停止的事件

在Music Player Service中接受Intent中信息, 根据信息的内容通过定义on Start (Intent intent, int start Id) 实现开始播放、暂停、停止等操作。

在监听器中创建一个Intent对象, 当操作发生后由Music Player跳转到Music Player Service, 然后读取歌曲文件的相关信息并压入Intent中, 再传递到service中。当执行播放操作时, 首先获取要播放的歌曲信息如:路径和歌曲名等信息, 然后调用mediaplayer接口读取数据, 并开始播放。当执行播放、暂停、停止等功能时, 则只需根据相关指令进行操作即可, 不需要再进行数据的读取。

3.2 播放列表的实现

播放器的播放列表主要包括歌曲名字、演唱者、歌曲时间, 播放列表配置文件框架结构主要如下所示:

在以上配置文件中, Text View用于定义每一个文本框, 显示歌曲的名字和演唱者以及时间。而播放列表的功能通过调用自定义方法get Music View (int pos, View con View, View Group view Parent) 来实现。该方法收到从存储卡中读取歌曲返回的信息后, 以列表的形式显示出来, 当用户打开列表时会自动搜索本地的歌曲文件, 并显示在列表中, 当本地没有歌曲文件时, 则提示列表为空。

3.3 菜单功能

在菜单功能中, 该文只设置了退出选项, 旨在减少程序代码的冗余, 程序中的Music Menu.java设置一个List容器, 用于存放String类型的数据, 如menu.add (0, ITEM, 0, "退出") , 然后通过intent.set Action (MUSIC_SERVICE) 传递到Music Player Service中去。

3.4 手机扩展卡的访问

为了更好的管理音乐文件, 该文专门开发了了文件浏览功能。当打开音乐文件浏览器时, 可以显示文件的目录结构、歌曲文件的文件名和文件图标等信息。对于每可查看得到的文件, 都可对其进行文件管理操作。因为本文的文件浏览功能是专为播放器操作歌曲而设计的, 因此通过该文件浏览器只能查看和操作音乐文件。在主菜单界面上, 选择新增选项进入到文件浏览器, 或者当播放列表为空时, 会提示用户进入文件浏览器新增歌曲。代码实现如下所示:

利用Android多媒体自带的存储方法进行数据的存储[7], 这样可以较好的利用系统资源, 其中Media Store.Audio.Media.TITLE代表的查找歌曲标题, Media Store.Audio.Media.DURATION代表查找歌曲的时间, Media Store.Audio.Media.ARTIST代表查找歌曲作者, Media Store.Audio.Media.ALBUM, 代表查找歌曲所属的专辑。

3.5 仿真结果和性能测试

如下图3所示, 即为播放器的主界面, 主要由歌曲名字, 歌手头像、歌词、进度条和各种播放功能组成:

3.5.1 播放界面音轨的实现

由于系统的Seekbar[8]通常很难满足用户的功能和感观需求, 因此本文定义了一个音轨进度条。如图4所示。该进度直观明了, 也便于用户操作使用。

4 结论

基于Android平台的手机音乐播放器, 希望能够为用户提供一款节约手机资源, 实用性强的手机音乐播放器。在本款软件中, 减少了很多不必要的功能设置, 避免了界面花哨、功能庞大而带来的浪费资源的问题, 所以较大的提供了软件的实用性, 希望能够得到较为广泛的应用。在本次软件的开发过程中, 从最初的Android开发环境搭建开始学习, 因为ADT的插件要在Eclipse中连线到国外在线安装升级, 所以这一部分相对消耗的时间较长, 但是过程也比较简单。然后就是对Android基本框架的学习, 以及熟悉Android的层次结构, 并要掌握常用的配置属性。

参考文献

[1]独立网页.Android.http://baike.baidu.com/view/1241829.htm.百度百科.2013

[2]Bruce Eckel.Thinking In Java[M].英文第4版.机械工业出版社, 2007.

[3]高焕堂.Android应用框架原理与程式设计36技[M/OL].Google公司.

[4]马越.Android的架构与应用[D].中国地质大学 (北京) 硕士学位论文.

[5]陈利强.基于ARM芯片的嵌入式图像处理平台开发与实现[D].华南理工大学硕士论文, 2011.

[6]Haseman Chris.Android Essentials[M].Apress:the Expert’s Voice, 2008:156-160.

[7]DiMarzia Jerome.Android:A Programmer’s Guide[M].McGraw-Hill, 2008:85-120.

上一篇:环境刑事诉讼下一篇:节奏影响