(计算机科学与技术专业论文)基于armlinux的嵌入式媒体播放器的研究与实现.pdf_第1页
(计算机科学与技术专业论文)基于armlinux的嵌入式媒体播放器的研究与实现.pdf_第2页
(计算机科学与技术专业论文)基于armlinux的嵌入式媒体播放器的研究与实现.pdf_第3页
(计算机科学与技术专业论文)基于armlinux的嵌入式媒体播放器的研究与实现.pdf_第4页
(计算机科学与技术专业论文)基于armlinux的嵌入式媒体播放器的研究与实现.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(计算机科学与技术专业论文)基于armlinux的嵌入式媒体播放器的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 摘要 随着科学技术的发展,人们对生活质量的要求越来越高,在视听享受方面, 家庭影院越来越普遍,便携式电子设备也日趋成熟。目前,人们对嵌入式媒体播 放器的研究越来越广泛了,国内外已经出现了像m p 3 、m p 4 和智能手机等众多样 式的便携式嵌入式媒体播放器。但由于种种环境及条件的限制,这些便携式的媒 体播放器都只能播放单一的或几种固定的媒体格式,可扩展性都比较差;而现在 随着应用的不断增多,越来越多的更先进的压缩算法被提出,导致了媒体格式的 多样化,在这种情况下,必然要求嵌入式媒体播放器要适应多种格式。为此,通 过对各种p c 机上的播放器设计架构的研究与借鉴,在本文中主要在软件方面为嵌 入式媒体播放器设计了一种可扩展性架构,并设计了播放器界面,实现了一些播 放器的功能。 另外,在本文还介绍了一种基于嵌入式技术的多媒体播放器的系统设计方案。 该系统主要是通过在嵌入式芯片上加载操作系统,同时扩充必要的接口,在操作 系统的支持下,开发多媒体播放器。 在本文的整个系统设计过程中,采用了i n t e l 公司的p x a 2 7 0 处理器芯片,外 扩展了u s b 接口,定制并加载了l i n u x 操作系统,在操作系统的支持下,对各个 外扩的接口进行了驱动程序的编写,同时应用q t e m b e d d e d 开发了多媒体播放器 的图形界面并实现了相应的功能,最后,图像既可显示在l c d 显示屏上也可通过 v g a 接口显示在电脑显示屏上,声音信号则是通过p x a 2 7 0 处理器的i i s 总线传 给c o d e c 芯片,然后将其转换为模拟信号,进而通过音箱或者耳机等设备放出。 关键词:嵌入式;媒体播放器;p x a 2 7 0 ;lin u x ;o t e m b e d d e d a b s t r a c t w i t l l 龇d e v e l o p m e n to fs c i e n c ea n dt e c h n o l o g y , p e o p l eh a v eh i g hd 锄a n d t 盯 l i v e s i nt h e 嘶。严既to f a u d i oa n dv i d e o ,h o m e t h e a t e ra r eb e c o m l n gp o 】p u l a r 腑蕊西卿r t a b l e e l e c t r o n i cd e v i c e s a r eb e c o m i n gi n c r e a s i n g l y m 籼e m p r c s e r r ,p e o p l e sr e s e a r c hf o re m b e d d e d m e d i ap l a y e ri sm o r ea n dm o r ew i d e l y a th o m e a n da b r o a d ,m e r eh a v eb e e nm a n yb r a n d so fp o r t a b l ee m b e d d e dm e d i ap l a y e rs u c h 弱 m p 3 、m p 4a n ds m a r tp h o n e s h o w e v e r , d u et ov a r i o u sr e s t r i c t i o n s o fc o n d i t i o n s 觚d e n v i r o i l n l e n t ,t h e s ep o r t a b l em e d i ap l a y e r sc a no n l yp l a ya s i n g l eo r6 x e dn 哪b e r so f m e d i af o 肌a t s , 1 e s ss c a l a b i l i t y n o w , w i t h i n c r e a s i n ga p p l i a c a t i o n s ,m o r e a n dm o r e a d v a n c e dc o m p r e s s i o na l g o r i t l 蚰sh a v eb e e np r o p o s e d ,t h i sh a s l e dt od i v e r s i f i c a t i o no f m e d i af o r i i l a t mn l i sc 嬲e ,i ti sn e c e s s a r y t oe m b e d d e dm e d i ap l a y e rt oa d a p t t 0av a n e t y o ff o n n a t s t 0m i se n d ,帅u 曲r e s e a r c ha n d r e f e r e n c eo fd e s i g na r c h i t e c :t u r eo fav a r i e t y o fp l a 煳i np c ,t h i sp a p e rm a i n l yd e s i g n as c a l a b l ea r c h i t e c t u r ef o rt h ee i l l b e d d e d m e d i ap l a y e ri i lt h es o f t w a r e ,d e s i g nt h ei n t e r f a c ef o rp l a y e ra n d r e a l i z ean u m b e r0 士 f u n c t i o n so ft h ep l a y e r i na d d i t i o n , t h ea r t i c l ea l s oi n t r o d u c e sas y s t e md e s i g ns c h e m e o fm u l t l m e d l ap l a y e r b a s e do n 锄b e d d e dt e d m o l o g y t h es y s t e mm a i n l yd e v e l o p m u l t i m e d l ap l a y e r1 n s u p p 矾o fm eo p e r a t i n gs y s t e mt h r o u g hl o a d i n gt h eo p e r a t i n gs y s t e i i l t ot h e 锄b e d d e d c h i p 姒de x p a n d i n gm e n e c e s s a r yi n t 柏c e i i lt h i s 枷c l e , i nt h ep r o c e s so f t h ee n t i r es y s t e md e s i g n i n g ,u s i n gt h ep r o c e s s o r0 t i n t e l ,sp x a 2 7 0 ,e x p a n d i n gt h eo u t s i d ei n t e r f a c e o fu s b ,c u s t o m i n ga l l dl o a d i n gt h e o p e r a :t i n gs y s t 锄o fl i n u x ,w r i t i n gd r i v e r sf o re a c he x p a n d i n gi n t 曲c e w i t ht h es u p p o r t o fo p 删n gs y s t e m ,d e v e l o p i n ga m u l t i m e d i ap l a y e r 铲a p h i c sw i t hq t e m b e d d e d a n d 枷州n gc 0 仃e s p o n d i n gf u n c t i o n s f i n a l l y , i m a g e sc a nb ed i s p l a y e d o nt h el c ds c r e e n o ro nt h ec o m p u t e rs c r c e nt h r o u g ht h ev g a i n t e r f a c e ,s o u n ds i g n a l sc a nb es e n tt ot h e c o d e cc h i pt h f o u 曲i i sb u so fp x a 2 7 0p r o c e s s o r t oc o n v e r t e dt oa n a l o gs l g n a l s , a n d t h 饥t h r o u 幽t h es p e a k e r so rh e a d p h o n e s a n do t h e re q u i p m e n tp l a y e d - k e yw 。r d :e m b e d e d ;m e d i a p l a y e r ;p x a 2 7 0 ;l i n u x ;q t e m b e d d e d 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成博硕士学位论文= = 基王基丛:l ! 挝堕k 的巍式媒佳搔趑登的硒究皇塞 扛。除论文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集 体,均已在文中以明确方式标明。本论文中不包含任何未加明确注明的其他个人 或集体已经公开发表或未公开发表的成果。本声明的法律责任由本人承担。 学位论文作者签名: 学位论文版权使用授权书 本学位论文作者及指导教师完全了解大连海事大学有关保留、使用研究生学 位论文的规定,即:大连海事大学有权保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫 描等复制手段保存和汇编学位论文。同意将本学位论文收录到中国优秀博硕士 学位论文全文数据库( 中国学术期刊( 光盘版) 电子杂志社) 、中国学位论文全 文数据库( 中国科学技术信息研究所) 等数据库中,并以电子出版物形式出版发 行和提供信息服务。保密的论文在解密后遵守此规定。 本学位论文属于:保密口在年解密后适用本授权书。 不保密( 请在以上方框内打“”) 论文作者签名:市历铆导师签名:棚 日期。1 年7 月2 日 基于a 1 0 1 - - l i n u x 的嵌入式媒体播放器的研究与设计 第1 章绪论 1 1 课题的研究目的及意义 随着科学技术的发展,人们对生活质量的要求越来越高,在视听享受方面来 说,过去的家庭影院v c d 、d v d 逐渐发展且越来越普遍,m p 3 、m p 4 和智能手机 等便携式电子设备日趋成熟。但这些电子设备由于种种原因可扩展性比较差,只 能播放单一格式或几种固定格式的媒体文件。而现在随着应用的不断增多,越来 越多的更先进的压缩算法被提出,导致了媒体格式的多样化,在这种情况下,必 然要求嵌入式媒体播放器要适应多种格式。另外,现在l i n u x 操作系统的应用越来 越普及,嵌入式处理器的处理能力越来越强,复杂的g u i 系统也越来越多。 1 2 研究现状 随着各项技术的发展,人们对嵌入式媒体播放器的研究也越来越广泛了,目 前国内外已经有众多品牌的便携式嵌入式媒体播放器,但由于种种条件及环境的 限制,这些品牌的嵌入式播放器都各有各的优缺点。就目前而言,嵌入式多媒体 的内部结构,比较成熟的解决方案有三种,分别是:基于s i g r n a d e s i g n s8 5 1 x 系 列芯片的解决方案,基于t id m 3 2 0d s p + a r m 处理器的解决方案和基于i n t e l p x a 2 7 x 的解决方案。这三种目前主流的解决方案各有各的特点。 就s i g m a d e s i g n s8 5 1 x 处理器而言,它是目前性能最强、最全面的专业解码芯 片,采用双核设计,将2 0 0 m h z3 2 位r i s c 处理器和m p e g 解码处理器集成于单 芯片上,它在无需其它外围芯片支持的情况下,能够完成系统所需各种接口的提 供、系统处理以及流畅的w m a v 9 、d i v xv 3 1 1 、d i v xv 4 x 和s x 、m p e g - 4 、 m p e g 2 、m p e g 1 等音视频解码。其中对系统要求极高的m p e g 2 解码, s i g m a d e s i g n s8 5 1 x 能轻松达到3 0 f p sd i ,流畅自如,这实属难能可贵! 总的来说它 的优点是单芯片,低成本,低功耗;硬核视频解码,视频播放效果好。缺点是无法 播放r m ,r m v b 等网络视频格式。 对于t id m 3 2 0d s p + a r m 处理器的解决方案,作为d s p 巨头,t l 力推基于 第1 章绪论 t id m 3 2 0d s p 的p m p 解决方案。因为,这个t i 解决方案是利用d m 3 2 0d s p 进 行音视频编解码处理,a r m 处理器则主要负责系统处理及提供外围设备接口。与 s i g m a d e s i g n s 方案一样,t i 方案支持的媒体类型非常丰富,能支持w m v 、d i v x v 3 1 1 、d i v x v 4 x 和5 x 、m p e g 4 、m p e g 2 、m p e g 1 等。但由于t id m 3 2 0 为纯d s p 芯片,因此必须配合a r m 处理器才能组成完整的解决方案,因此在成 本上并不具备优势。总的来说这个解决方案的优点是支持的媒体类型丰富,编解 码能力强。缺点是必须配合a r m 处理器,成本不占优势,功耗也较大,不支持网 络视频格式r m ,r m v b 2 】。 最后对于i n t e lp x a 2 7 x 的解决方案,p x a 2 7 x 是i n t e l 公司于2 0 0 3 年底推出的 性能最为强劲的嵌入式处理器,它最高频率可达6 2 4 m h z 。作为一款性能极其强劲 的嵌入式处理器,配合嵌入式l i n u x 或w i n c e 操作系统,p x a 2 7 x 理论上可以支持 任何媒体格式,并通过软件升级,支持未来媒体格式。但由于m p e g 2 对硬件的 极高要求,因此单纯依靠p x a 2 7 x 处理器进行m p e g 一2 编解码是不现实的。i n t e l 公司于2 0 0 4 年推出了2 7 0 0 g 多媒体加速芯片,配合p x a 2 7 0 进行视频加速与3 d 加速。同时,p x a 2 7 x 加入了w i r e l e s sm m x 技术和s p e e d s t e p 动态电源管理技术, 不但大大增强了p x a 2 7 0 的媒体处理能力,而且极大降低了系统功耗,延长p m p 产品的电池寿命。2 7 0 0 g 的加入,更使p x a 2 7 x 方案成为全能解决方案,不但完 美解决了m p e g - 2 编解码问题,更使基于p x a 2 7 x 的p m p 产品能向多功能化发展, 可以加入游戏、摄像等功能,成为个人娱乐终端。总的来说这个解决方案的优点 是支持目前所有的媒体类型,可通过软件升级支持未来媒体类型;接口丰富,可支 持s d 、m s 、c f 等;支持最大4 0 0 万象素摄像头;支持动态电源管理,功耗低。缺 点是成本可能较高。 当然目前市面上还有其它几种非主流方案,如p x a 2 5 5 解决方案、s u n p l u s s p c a 5 3 6 解决方案、f r e e s c a l ei m x 2 1 解决方案等。基于p x a 2 5 5 的方案特点是 功耗较低,且能够支持较多的媒体格式,但缺点是无法支持大尺寸图象的编解码, 如m p e g 2 等。 s u n p l u ss p c a 5 3 6 解决方案价格低廉,但仅支持m p e g 4 编解码 与j p e g ,支持媒体类型单纯,功能单一;f r e e s c a l ei m x 2 1 芯片原为智能手机专门 基于a i 舯l i n u x 的嵌入式媒体播放器的研究与设计 设计,接口类型比较丰富,但音视频处理能力一般,无法进行流畅的m p e g - 4 播 放,无法处理m p e g 2 视频口1 。 由于p m p ( 便携式多媒体播放器) 产品的研发难度较大,目前市面上的大多数 p m p 产品均为国外或台湾设计。中国大陆消费类娱乐产品的生产商因研发能力普 遍较低而无法自己研发产品,因此未来中国大陆p m p 设计制造将更多的按照生产 商+ d e s i g nh o u s e 的模式进行,这样生产商可以充分发挥自己的渠道和规模优势, 而d e s i g nh o u s e 则发挥自己的强设计能力和低营运成本优势,双方合作则能够共 同把p m p 市场做大、做强。 国内目前也有进行p m p 方案设计的公司,如南京东集公司( w w w s e u i c c o m ) , 采用的是i n t e l 嵌入式处理器p x a 2 5 5 方案。采用s i g r n a d e s i g n s 解决方案的公司主 要集中在深圳,如深圳市深视通科技开发有限公司( w w w s s t v i s i o n t o m ) ,该公司目 前己经设计出了基于s i g l n a d e s i g n s8 5 1 l 处理器的成熟的p m p 解决方案,并制作 了d e m o 。而t id m 3 2 0 方案,目前主要依靠t i 合作伙伴美国i n g e n i e n t 公司推广。 1 3 论文所做工作和论文结构 1 3 1 论文所做的工作 本文主要完成以下工作: 系统的需求分析和总体设计:主要包括调研、需求分析和概要设计 可扩展性架构的设计:设计一种具有很好扩展性的媒体播放器的软件架构。 开发平台的搭建:包括交叉编译环境的建立,内核定制、编译及移植, q t e m b e d d e d 的安装及相应环境变量的配置。 系统硬件选择及电路设计:包括微处理器、存储模块、语音模块、l c d 模块 的选择和相关电路设计。 播放器的软件发:主要是用q t e m b e d d e d 对播放器的界面进行开发,并实现 相应的功能。 1 3 2 论文结构 本论文共分六章。 第1 章绪论 论文的第一章( 本章) 是绪论部分,主要是对课题的研究目的及意义,课题 现状以及作者所做的工作进行简略的介绍。 第二章主要介绍了本系统的总体设计,首选主要是对系统的整体架构进行了 介绍,之后对系统的硬件电路和软件功能模块进行了介绍,本章对系统的开发和 编程都具有了一定的指导意义。 第三章主要在前一章的基础之上介绍了相关硬件电路,并选择硬件系统中用 到的处理器及相关主要芯片,同时介绍各个主要芯片的电气特性。 第四章主要是通过对现有的主要的嵌入式操作系统的特点进行介绍并加以比 较,从而确定本系统中所应使用的操作系统,并详细说明了对所选操作系统的定 制,编译和移植。 第五章主要介绍了可扩展性架构的设计和相关模块功能。 第六章主要介绍媒体播放器开发的环境,开发中所用到的信号和槽机制,媒 体播放器界面开发的详细过程和播放器相关功能的实现。 基于a r m - l i n u x 的嵌入式媒体播放器的研究与设计 第2 章系统的总体设计 播放器在解码方法上有软件解码和硬件解码两种,在过去主要采用硬件解码, 它主要是通过控制器进行控制以完成数据从源到解码芯片的传送,解码后的数字 信号通过d a 转换器转换成模拟信号,采用这种方式很明显可扩展性是非常差的 h 1 。现在,嵌入式系统已经进入了3 2 位时代,微处理器的高速发展使得软件解码 越来越盛行,微处理器上又可运行嵌入式操作系统方便了软件解码和管理,这种 方式很明显相比上面那种可扩展性是很好的。为此,在本文采用在处理器上加载 嵌入式操作系统,基于加载的操作系统进行应用程序开发的方案。在本章主要是 对系统进行总体设计,它将对后面系统的开发和编程起到至关重要的指导作用。 2 1 系统整体框图 l 应用程序( 播放器) t i q t e m b e d d e d t l 嵌入式操作系统( l i n u x ) t i 硬件电路 图2 1 系统整体框图 f i g2 1s y s t e mb l o c kc h a r t 如图2 1 所示,该系统的设计主要分四部分,首先是完成硬件电路的设计,其 次是将定制好的,编译好的操作系统移植到设计好的硬件电路上,再者在操作系 统上安装应用程序开发环境,最后进行应用程序的开发,在进行应用程序开发时 使用的是交叉编译。 第2 章系统总体设计 2 2 系统硬件原理图 系统的硬件部分主要包括存储器、处理器、输入设备和输出设备。系统主要 是通过u s b 口将音视频文件下载到存储器中,之后读取存储器中的文件到处理器 中进行相应的分析与处理,最后将处理后的音频数据通过音频芯片转换成模拟信 号后通过输出设备输出,将处理后的视频数据直接写到帧缓冲区中,进而通过显 示屏显示。当然,用户可以通过输入设备将控制命令传送给处理器,进而起到对 系统的控制作用。系统硬件原理框图如图2 2 所示。 代? 。j 。- 。| 一冬 i ?f 一_ 。,? v ;。m j j 女氯 i n s e r t l t e m ( ”& p i c t u r e , t h i s ,s l o t ( o p e n p i e t u r e ( ) ) ,c t r l + k e y _ s ) ; i n ti d _ s a v e = f i l e 一 i n s e r t l t e m ( ”& s a v e , t h i s ,s l o t ( s a v e ( ) ) ) ; f i l e - s e t l t e m e n a b l e d ( i d _ s a v e ,f a l s e ) ; f i l e - i n s e r t l t e m ( ”& e x i t , t h i s ,s l o t ( e x i t m a i n 0 ) ,c t r l + k e y _ x ) ; p l a y - i n s e r t l t e m ( ”& p l a y , t h i s ,s l o t ( p l a y f i l e 0 ) ) ; p l a y - i n s e r t r e m ( ”& s t o p , t h i s ,s l o t ( s t o p f i l e 0 ) ) ; p l a y - i n s e r t i t e m ( ”& f s c r e e n ,t h i s ,s l o t ( s c r e e n f i l e 0 ) ) ; p l a y - i n s e r t l t e m ( ”& v o l u m e ”,t h i s ,s l o t ( y i n g l i a n g o ) ) ; p l a y - i n s e r t l t e n n ( ”& l i s t ,t h i s ,s l o t ( 1 i e b i a 0 0 ) ) ; h e l p - i n s e r t l t e m ( ”& i n t e r n e t , t h i s ,s l o t ( h e l p 0 ) ) ; q m e n u b a r 木m e n u ; m e n u = n e wq m e n u b a r ( t h i s ) ; m e n u - i n s e r t l t e m ( ”& f i l e , f i l e ) ; m e n u - i n s e r t l t e m ( ”& p l a y , p l a y ) ; m e n u - i n s e r t l t e m ( ”& h e l p , h e l p ) ; 4 添加标签,并设置背景颜色为黑色。 l a b e l = n e wq l a b e l ( , t h i s ) ; 4 2 基于a r m - l i n u ) ( 的嵌入式媒体播放器的研究与设计 一 l a b e l s c t b a c k g r o u n d c o l o r ( b l a c k ) ; 5 添加进度条。 p r o g r e s s b a r = n e wq p r o g r e s s b a r 0 ; 6 添加控制按钮。控制按钮包括了播放,暂停,停止,全屏,音量。 q t o o l b u t t o n 宰p l a y b u t t o n = n e wq t o o l b u t t o n ; p l a y b u t t o n - s e t t o o l t i p ( t r ( ”p l a y ”) ) ; q t o o l b u t t o n 木p a u s e b u t t o n = n e wq t o o l b u t t o n : p a u s e b u t t o n 一 s e t t o o l t i p ( t r ( p a u s e ”) ) ; q t o o l b u t t o n 幸s t o p b u t t o n = n e wq t o o l b u t t o n ; s t o p b u t t o n - s e t t o o l t i p ( t r ( ”s t o p ”) ) ; q t o o l b u t t o n * f s c r e e n b u t t o n = n e wq t o o l b u t t o n ; f s c r e e n b u t t o n 一 s e t t o o l t i p ( t r ( ”f s c r e e n ) ) ; q t o o l b u t t o n * v o l u m e b u t t o n = n e wq t o o l b u t t o n ; v o l u m e b u t t o n 一 s e t t o o l t i p ( t r ( ”v o l u m e ”) ) ; 7 界面的整体布局是先采用水平布局管理器q h b o x l a y o u t 对控制按钮进行布 局,之后再采用垂直布局管理器q v b o x l a y o u t 对菜单栏、标签、进度条和已布局 好的控制按钮进行布局。这里使用了两个布局,因此,必须设立一个主布局,以 垂直布局管理为主。 q h b o x l a y o u t b u t t o n s l a y o u t = n e wq h b o x l a y o u t ; b u t t o n s l a y o u t - a d d s t r e t e h 0 ; b u t t o n s l a y o u t - a d d w i d g e t ( p l a y b u t t o n ) ; b u t t o n s l a y o u t - a d d w i d g e t ( p a u s e b u t t o n ) ; b u t t o n s l a y o u t - a d d w i d g e t ( s t o p b u t t o n ) ; b u t t o n s l a y o u t 一 a d d w i d g e t ( f s c r e e n b u t t o n ) ; b u t t o n s l a y o u t - a d d w i d g e t ( v o l u m e b u t t o n ) ; b u t t o n s l a y o u t - a d d s t r e t c h 0 ; q v b o x l a y o u t 幸m a i n l a y o u t 2 n e wq v b o x l a y o u t ; m a i n l a y o u t a d d w i d g e t ( m e n u ) ; m a i n l a y o u t - a d d w i d g e t ( 1 a b e l ) ; m a i n l a y o u t a d d w i d g e t ( p r o g r e s s b a r ) ; _ 4 3 第6 章应用程序的开发 m a i n l a y o u t - a d d w i d g e t ( b u t t o n s l a y o u t ) ; s e t l a y o u t ( m a i n l a y o u t ) ; 6 4 信号和槽机制 在g u i 用户界面中,当用户操作一个窗口部件时,需要其他窗口部件的响应 或者能够激活其他的操作。在程序开发中,经常使用回调机制来实现。所谓回调, 就是事先将一个回调函数指针传递给某一个处理过程,当这个处理过程得到执行 时,回调预先定义好的回调函数以期实现激活其他处理过程的目的。而在这罩不 同于回调函数机制,q t e m b e d d e d 提供了信号和槽机制。信号是一个特定的标识; 一个槽就是一个函数,与一般函数不同,槽函数既能够和信号关联,也能够像普 通函数一样直接调用。当某个事件出现时,通过发送信号,可以将与之相关联的 槽函数激活,即执行槽函数代码。信号和槽的关联关系有三种模式:一个信号和 一个槽关联;一个信号和多个槽关联;多个信号和一个槽关联汹1 。在程序中,通 过调用q o b j e c t 对象的c o n n e c t 函数来将某个对象的信号和另外一个对象的槽函 数相关联,这样当发射者发射信号时,接收者的槽函数将被调用。该函数的定义 为:b o o lq o b j e c t :c o n n e c t ( c o n s tq o b j e c t 季s e n d e r , c o n s tc h a r 木s i g n a l ,c o n s t q o b j e c t 母r e c e i v e r , c o n s tc h a r m e m b e r ) 。其作用就是将发射者s e n d e r 对象中的 信号s i g n a l 和接收者r e c e i v e r 中的m e m b e r 槽函数联系起来。当指定信号s i g n a l 时必须使用q t 的宏s i g n a l ( ) ,当指定槽函数时必须使用宏s l o t ( ) 。如果发射 者和接收者属于同一个对象的话,那么在c o n n e c t 调用中接收者参数能省略。 6 5 各功能的实现 6 5 1 文件打开功能 为了方便程序员进行某些特定功能对话框的编程,q t 和q t e m b e d d e d 提供了 一套标准的通用对话框,其中包括了文件对话框q f i l e d i a l o g 。通过弹出q f i l e d i a l o g 对话框,我们既可以选择一个或者多个文件以及目录,也可以输入文件名或者路 径,它可以限制用户只能选择已经存在的文件,也可以允许用户输入一个新的文 件名啪1 ;此外,使用过滤器,则只能选择符合特殊标准的文件名。在这里使用 基于a m 6 - l i m 3 x 的嵌入式嶷体播放器的研究与醴计 q f i l e d i a l o g 类中的g c t o p f i l c n 姗哪来获取文件的路径,并将其返回给一个 q s t r i n g 对象n 栅e ,以便后面使用。在鲋o p 棚f n c n 蛐d ) 这个函数中有一个参数 是c o n s t o s t r i n g & f i l t e r 它就是过滤器。其运行结果如图6 2 所示。 l o o ki n :lj r o o t q t d e s i g n er p l a y e u 、臼 _ j _ l o g og i f - j i m a g e sjm m nc p p u3 j p gm a i no b l u e h i l l s j p 9m a j n w l d g e tc p p l d e s i g n e r p l a y e r l jm m n “d g e th ud e s i g n e r p l a y e r p m _ m a l n a ,i d g e to 【_ m a k e f l l e口m o c m a m w l d g e tc p p 【jb o a d t h mw a v- m 0 e m dr l w 0 9 e to jj p 2 a v ld l l f i l e _ n a m e :_ | f i l e i y p e : a l l ( ) l :二= 图g2 “打开文件”对话框 f i g6 20 p 叽m g h l e d i a l o g j 田 习 互 652 播放,暂停,停止功能的实现 在本系统是经过动态链接库的形式调用软件解码器的。为此必须先加载动态 链接库,然后当加载成功后,再调用里面的相应函数。在此,使用了q l i b r a r y 类, 首先通过创建q l i b r a r y 的对象来加载相应的动态库,其次通过创建的对象调用 q l i b r a r y 类中的l o a d o 函数检查动态庠是否加载成功,如果加载成功则通过创建的 对象调用q l i b r a r y 类中的r e s o l v e 0 函数泉调用加载的动态库中相应功能的函数。 6 53 进度条的实现 为了实现播放进度的显示和随机位置的拖动,在这里我使用了类q p r o g r e s s b a r 中的v o i dr e * e t 0 ,v o i ds e t m a x i m u m ( i n t m a x i m u m ) ,v o i ds c t m i n i m u m ( i n t m i n i m u m ) , 第6 章应用程序的开发 v o i ds e t v a l u e ( i n tv a l u 曲,v o i dv a l u e c h a n g e d ( i n tv a l u e ) 这几个函数。其中r e s e t 方法用 来重置它的进度至未开始状态,它在“停止”这个按钮处被调用;s e t m a x i m u m 和 s e t m i n i m u m 函数用来设置进度条的最大和最小值;s e t v a l u e 函数改变进度条的值; v a l u e c h a n g e d 函数用来判断进度条的状态是否改变。 进度条的主要实现原理是:当进度条的状态改变时,它就会发射 v a l u e c h a n g e d ( i n t ) 这个信号,然后播放控件中的c h a n g e v a l u e 0 方法就会被调用,并 用新的数值作为参数。同样,当播放状态改变时,它也会发射一个v a l u e c h a n g e d ( i n t ) 信号,同时参数被传递给进度条的s e t v a l u e ( i n t ) 信号槽。 6 5 4 全屏功能的实现 在p l a y 主菜单下的子菜单中和控制按钮中,都有实现全屏播放功能这一项。 要实现这一功能,主要是通过基础窗口类q w i d g e t 中的s h o w f u l l s c r e e n 0 和 s h o w m a x i m i z e d 0 两种方法,经测试,使用s h o w f u l l s c r e e n 0 方法比较好。当然,这 只是对窗口实现了全屏功能,还必须在其他控件上添加适应窗口大小变化的函数, 使其能够随着窗口的变化而变化。在使用上面的s h o w f u l l s c r e e n 0 方法实现全屏功 能时只需通过信号和槽机制将其与控制按钮和相应的子菜单连接即可。 6 5 5 音量控制功能的实现 在音量控制上,使用的是s l i d e r 控件。通过点击p l a y 菜单下的v o l u m e 子菜单 或按钮控件中的音量控制按钮,即可弹出垂直放置的s l i d e r 控件;通过上下拖动该 控件,即可实现音量大小的控制。其实现原理与进度条类似。 6 5 6 播放列表功能的实现 在播放列表的实现上,使用了q l i s t v i e w 、q l i s t v i e w l t e m 、q d i r 和q f i l e l n f o 这四个类。 播放列表中的文件以树状的形式显示,以q l i s t v i e w 为树根h 训。通过指向 q l i s t v i e w 的指针来调用a d d c o l u m n ( ) i 丞l 数添加两个条栏,分别命名为n a m e 和s i z e , 分别用来显示文件名和文件的大小,当然,如果文件是目录,则显示文件大小 栏将提示是目录。之后通过使用q l i s t v i e w l t e m 这个类来指定q l i s t v i e w 为父结点 _ 4 6 基于a r i l i n u x 的嵌入式媒体播放器的研究与设计 往列表中添加文件。 往列表中添加目录时,使用q d i r 类,通过调用q d i r 类中的h o m c o 函数获取 文件的路径,并返回给q d i r 类的对象,通过该对象再调用s e t f i l t e r 0 和s e t s o r t i n 9 0 函数进行文件的过滤和排序h 。在此之后创建q f i l e l n f o 类的对象,通过该对象调 用f i l e n a m e ( ) 和s i z e ( ) 这两个函数往上面所添加的条栏中添加文件和相应文件的大 小。当往n a m e 栏中的某个目录中添加文件时,在调用q l i s t v i e w l t e m 的构造函数 时指定了添加那个目录时所创建的q d i r 的对象为父结点h 副。在列表中创建新目录 时调用了q d i r 类中的m k d i r o 函数,更改目录名称时调用了q d i r 类中的r e n a m e ( ) 函数,在删除列表中的某个目录时调用了q d i r 类中的r m d i r o 函数,在删除列表中 的文件时调用了q d i r 类中的r e m o v e ( ) 函数。 结论 结论 本课题介绍了一种基于嵌入式技术的媒体播放器系统的设计方案。全文在整 体结构、软硬件设计等方面对整个系统的设计过程做了具体的介绍和说明。系统 主要由硬件和软件两个部分组成。硬件部分主要是由i n t e lp x _ a 2 7 0 处理器,存储 器,u s b 接口,l c d 等器件构成。软件部分主要是通过q t e m b e d d e d 对播放器界 面进行设计,同时实现相应的功能。另外,连接软件与硬件的嵌入式操作系统选 择的是嵌入式l i n u x 操作系统。 本课题完成的工作有以下部分: 首先,进行了系统的整体设计,选择了系统硬件部分所需要的所有器件,同 时进行了硬件部分接口电路的设计。 其次,对操作系统进行了选择,并对选择的l i n u x 操作系统进行了详细的定制, 编译和移植。 最后,选择了应用程序丌发环境q t e m b e d d e d ,并进行了播放器界面的设计 和相应功能的实现。 另外,在绪论中已经提到,当前大部分的嵌入式媒体播放器的可扩展性都比 较差,而现在随着应用的不断增多,越来越多的更先进的压缩算法被提出,导致 了媒体格式的多样化,为了适应这种情况,通过对p c 机上的媒体播放器架构的研 究与借鉴,在本文设计了一种可扩展性架构。 本论文通过上面的工作,完成了课题的总体设计和软硬件设计,硬件环境的 搭建,操作系统的定制,播放器界面的设计和开发,播放器基本功能的实现和可 扩展性架构的设计。当然,由于客观条件的制约,本设计仍然有许多不足和有待 改进之处,比如:l c d 接口的设计上,l c d 显示缓存与系统用的是同一块s d r a m , 这样显示缓存与系统争用资源,从而造成l c d 刷新速度降低的问题;存储容量小, f l a s h 和s d r a m 的容量都只有6 4 m 。在播放音频上,从音量音质等方面都比较 令人

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论