基于GEC6818开发板硬件平台的嵌入式电子相册.doc

上传人:奥沙丽水 文档编号:56277 上传时间:2025-07-09 格式:DOC 页数:50 大小:11.79MB
下载 相关 举报
基于GEC6818开发板硬件平台的嵌入式电子相册.doc_第1页
第1页 / 共50页
基于GEC6818开发板硬件平台的嵌入式电子相册.doc_第2页
第2页 / 共50页
基于GEC6818开发板硬件平台的嵌入式电子相册.doc_第3页
第3页 / 共50页
基于GEC6818开发板硬件平台的嵌入式电子相册.doc_第4页
第4页 / 共50页
基于GEC6818开发板硬件平台的嵌入式电子相册.doc_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、 题目:基于GEC6818开发板硬件平台的嵌入式电子相册 学 院:专 业:姓 名:指导老师:自动化学院自动化廖远东学 号:职 称:160104105479黄相杰讲师 中国珠海二二年五月45 诚信承诺书 本人郑重承诺:本人承诺呈交的毕业设计脉动式无级变速装置的仿真及设计是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,设计使用的数据真实可靠。 本人签名: 日期: 年 月 日 中文题目基于GEC6818开发板硬件平台的嵌入式电子相册 摘 要电子相册,在我们日常生活中主要存储一些自己的数字照片,随着电子产品日益更新换代,电子相册也不仅仅用于存储照片

2、可以做到存储文档、播放视频、阅读电子书、甚至玩大型游戏,俨然成为了多媒体娱乐终端设备。其中硬件功能的升级换代功不可没,性能强大的芯片支持和存储设备使其不断成长。而本次设计基于嵌入式LINUX系统的电子相册,就是一种在Linux嵌入式系统下的使用GEC6818开发板实现人机交互的集照片显示、视频播放功能和音乐收听等功能的多功能电子相册,此次使用的ARM芯片GEC6818开发板具有强悍的性能,具备许多市场上开发板常见功能接口,如触摸屏、VGA、SD卡、音频、RS串口等接口,可用于开发linux、安卓等系统。目前市场上的主流电子相册软件都适用于手机和平板等终端设备,软件占用的内存较多、对硬件的要求

3、高所以设计一个功能众多且体积较小的嵌入式Linux电子相册很有意义。嵌入式系统作为新时代新兴系统,其前景什么广阔。它具有操作简洁、方便、提供友好的图形GUI和图形界面,的优点,对入手学习的新手十分友好,从应用上讲现如今VR可视化设备、无人驾驶、智能家居等等新兴技术日复一日的出现在我们的生活中,它们都是智能电子产物里嵌入式技术的代表作。Linux则是一种自由度非常高和开放源码的类Unix操作系统,在大学生涯也是作为学习的重点放入众多工科学生的课程中,其庞大的使用群体和开放的体系和丰富资源使得Linux将是日后普及和推广的重点。关键词:多功能电子相册;Linux;GEC6818开发板;嵌入式系统;

4、 英文题目Embedded electronic album based on gec6818 development board hardware platform AbstractElectronic photo album is mainly used to store some of our own digital photos in our daily life. With the increasingly updated electronic products, electronic photo album is not only used to store photos, but

5、 also to store documents, play videos, read e-books and even play large games. It has become a multimedia entertainment terminal equipment. Among them, the upgrading of hardware function is indispensable, and the powerful chip support and storage device make it grow continuously. In this design, the

6、 electronic album based on Embedded Linux system is a kind of multi-functional electronic album which uses gec68118 development board to realize human-computer interaction under Linux embedded system, including photo display, video playback, music listening and other functions. The ARM chip gec6818

7、development board used in this design has strong performance, and has many common functional interfaces of development board in the market, such as Touch screen, VGA, SD card, audio, RS serial port and other interfaces can be used to develop Linux, Android and other systems. At present, the mainstre

8、am electronic album software in the market is suitable for mobile phones, flat-panel and other terminal devices. The software occupies more memory and requires high hardware, so it is very meaningful to design an embedded Linux electronic album with many functions and small volume. As a new system i

9、n the new era, embedded system has a bright future. It has the advantages of simple operation, convenient, friendly GUI and GUI, and is very friendly to the novice who starts to learn. From the application point of view, now VR visualization equipment, driverless, smart home and other emerging techn

10、ologies appear in our life day by day, they are the representative of embedded technology in intelligent electronic products. Linux is a kind of UNIX like operating system with very high degree of freedom and open source. It is also put into the courses of many engineering students as the focus of l

11、earning in college. Its huge user groups and open system and rich resources make Linux the focus of popularization and promotion in the future.Keywords: Multifunctional electronic album; Linux; gec6818 development board; embedded system; 目录1 前言11.1课题背景11.2本设计的目的、意义及应达到的技术要求11.3本设计在国内外的发展概况及存在的问题21.3

12、1国内外的发展概况:21.3.2发展中存在的问题:31.4本设计应解决的主要问题42.1总体设计42.2程序设计82.2.1 程序设计主要思路82.2.2 核心问题分析82.3方案选择142.3.1设计原理152.3.2设计过程163结论16参考文献18谢 辞19附 录20附录121附录2391 前言近几年,计算机技术、电子技术、成像技术数字化、嵌入式技术、人工智能等技术的进步可谓是一飞冲天,这也意味着智能化时代逐步地然实现。观察近几年之后不难发现,特别是这些年来像苹果、小米、华为等大厂制出的手持设备十分的智能而且很受欢迎,像IPAD等平板电脑成为年轻人手中不可或缺的娱乐终端,而这类设备往往

13、都具备电子相册和摄像等基础功能,而如今的年轻人也常常使用其记录自己的生活的每一刻,在大家的生活中起到举足轻重的作用。其中一般采用高性能处理器配合大屏的彩色液晶作为设计方案,在某些对数字信号处理速度或者对时序要求较高的场合还采用了多处理器相互配合工作的方式,例如ARM+DSP、ARM+FPGA 等。4此次设计是以多媒体电子相册为大方向的,其中交互界面的设计为重点,简洁流畅的多功能电子相册为最终目标。采用基于ARM Cortex M3 内核的GEC6818开发板 和7 英寸触摸显示屏通过虚拟机和ubuntu等软件实现图片的显示和切换,并且扩充了视频播放功能、音乐音频输出、无线接收传输文件等功能的设

14、计与硬件实现,最终得到一个以linux为系统的手娱乐终端。1.1课题背景 当下社会,电子相册作为许多智能设备的基础功能,在其中不起眼成为了它的标签。但是电子相册确实是早期的手机、mp3、mp4等电子产品的框架里不可或缺的功能,搭配拍摄功能几乎完美取代了数码相机,之所以不起眼是因为在这个快速发展的时代,电子早已潜移默化的成为人们生活的一部分了。不管是工作还是日常生活,记录着历史的变迁,时代的进步。此次研究的嵌入式电子相册系统,其体积框架往往小于市场上许多架构于安卓等系统的电子相册,十分具有研究的价值,有益于推动电子相册的发展。而其中的嵌入式系统和linux语言正是我们大学授课的一部分,不仅是对学

15、业完成度的一种检验,更是对我技能知识的一种拔高。因此我设计了这个通过gec6818开发板硬件平台的多功能电子相册。1.2本设计的目的、意义及应达到的技术要求设计目的:本设计以现代手持设备娱乐多媒体终端为方向,采用基于ARM Cortex M3 内核的GEC6818开发板 和7 英寸彩色液晶显示的触摸屏,完成对各种图片格式的解码显示且可以通过触摸显示屏切换其中的图像,扩充视频播放与音频输出的功能、无线接收传输文件、密码匹配解锁界面等功能,最终得到一个比较稳定的系统,本次设计出来的产品应该能实现实际功能,根据操作进行正确的动作,界面应该人性化且具有美观性,有一定的市场价值。目前市场上的主流电子相册

16、软件普遍体积庞大、占用内存多、可拓展性较差、硬件要求高所以开发一个运行速度快,占用空间小并且可拓展性强,对系统稳定的且功能实用的嵌入式Linux电子相册很有意义。应该达到的技术要求:1.实现触摸屏上图片显示,具有相册的存储功能,切换图片显示点击屏幕左右两侧。2.实现视频的播放,可以触摸屏幕暂停和继续视频的播放,并且可以切换列表中上一个或者下一个视频。3.可以打开音频文件进行音频的播放,并且可以切换上一首或者下一首曲目,插入耳机进行收听。4.实现pc端与6818之间的无线wifi的传输电子文件的功能。5.给此次开机界面添加密码锁(拓展:进入界面后可修改任何六位数密码)。1.3本设计在国内外的发展

17、概况及存在的问题嵌入式系统是一种特殊的面向应用的计算机系统,其软硬件可以根据具体的功能进行定制。其对每一个部件都有着严格的把控 ,例如成本、可靠性等等。随着电子技术和计算机行业的在市场上的发展,嵌入式已经成为电子技术以及计算机行业内重要的一员。嵌入式系统产业具有很大的关联度和良好的市场前景,这也间接证明了其潜力的无限,之所以能有这样也归结于其自身的优质的支持开放性的体系结构。过去嵌入式系统较难普及的原因,是集成电路集成度和制造水平尚无法突破,但是现在国内外半导体IC设计企业己经可以生产出大量低成本的微型硅组件,并以此为基础发展出了许多可编程逻辑和微处理/控制器,这些组件可以用软件技术来实现或更

18、改硬件功能,搭配特定的操作系统或用户接口,可以实现许多新型态应用,如PAD, STB、上网机等。1 然而随着计算机网络技术与数码产品的迅速发展,人们喜欢把自己喜欢的照片通过电脑来存储,这样使得电子相册理所应当的发展起来,人们渐渐地看到了电子相册这样一个巨大的商机, 所以各式各样与电子相册有关的网站渐渐发展起来。21.3.1国内外的发展概况:19世纪末,随着计算机的问世,并且逐渐的更新换代,电子技术也开始蓬勃发展,电子相册也随之诞生了,刚开始也称之为数码相框,仅仅有着最基础的存储相片的功能。但是与传统的相册不同,它的可延展性十分高,根据现在电子相册的发展情况我们可以得知,电子相册不在局限于存储功

19、能而拥有更多符合人们使用手持终端设备的拓展功能,例如视频播放和信息保留等,编辑也成为相册里最基本的功能之一,其中各式各样的多媒体服务更是让人眼花缭乱。尽管现在电子相册发展成为了趋势和潮流,不过传统相册仍是主流,仍是主导,在未来的几年或者更长时间,传统相册不会落伍于电子相册,因为两者都不能取代其一,而是需要结合发展的。当前,我国电子相册发展前景仍然处于稳步上升阶段,因为近年来电子产品更新换代的速度快如闪电,市场需求自然地不断增大。在早期二十世纪初,MP3与MP4等数码随身听取得巨大的市场成功后,市场需求暴增,而功能不局限于存储相册并且能支持视频、游戏娱乐、图书阅读的便携式播放器逐渐成为消费者的心

20、头好。在法国ARCHOS公司推出了首部MP4掌上影院后,众多企业均看好MP的发展态势,新一代MP4良好的发展前景和潜在的市场,成为移动数码产业的新亮点,吸引着众多厂商大力研发,并将其推向市场。3从此国内电子相册的发展也就不在仅仅局限在传统的电子相册中了,更多的是将它作为一个基础的功能嵌入进某一些手持的娱乐终端设备平台上。2007年后,老百姓普遍用上了手机这种嵌入式设备,它集成了摄影,通信,娱乐等功能。恰好其中的相册功能搭配摄影功能逐渐成为人们生活中不可或缺的记录生活的设备,而它也渐渐的代替了数码相机成为人们日常生活中存储相片与拍摄的机器。随着各种计算机语言如java、linux、c等语言的诞生

21、诸如Windows、linux、mac等系统也随之产生,而电子相册也在不同系统有着不同的实现,通过软件的设计诞生不同功能的电子相册。其基础的存储功能随着科技的进步进入了云时代,不同以往需要使用到拓展硬盘内存或者直接使用运行内存模块,例如苹果公司提供的云端服务iCloud可以将图像直接保存在他们公司的云端服务器中,需要时再通过网络下载,如今很多大型厂商也采取这种模式。近年来,国内的电子相册从最初的幻灯片形式,变成了以Flash动画为主的电子相册,不再是简单的照片之间的切换,其归类排版的功能也变得人性化。现如今的电子相册甚至根据客户的需求,添加特效动画、字幕等后期,使得整个相册变得更加的美观。对

22、于电子相册人性化,国外也有了更大的突破,通过解码识别bmp等高质量图片,不单单是只能识别jpg一种格式。这样的改变致使数码相机不会成为拍摄的唯一选择。随着通信技术的发展,通过链接分享相册内的内容给好友欣赏也成为了家常便饭。然而嵌入式系统的电子相册在新媒体技术也得到了长足发展,例如智能手机和平板电脑、监听设备等,它们都属于嵌入式电子相册的一种延伸。随着芯片技术的飞速发展,嵌入式系统的性能也在逐渐提升,其软硬件可剪裁的特性使得功能也越来越丰富。1.3.2发展中存在的问题: 嵌入式的电子多媒体播放器在现在的发展中还是有许多问题的,相册功能已经十分完善不管是PC上的软件还是终端设备上的软件都具有相应的

23、解码功能,对各种图片都有着相应的解码器,其中播放视频的功能并没有发展完全。在Linux系统上己经有Xmms, Xmovie, Xine,Realplayer, Quicktime,Mplayer等媒体播放器,其中既有Realplayer, Quicktinle为代表的商业软件,也有以Xine, Mplayer为代表的自由软件,但以上媒体播放器主要都是针对固定媒体类型与传输协议,具有比较强的专用性,如Xmms主要用于MIP3的播放,Xmovie主要支持MPG, MOV, VOB, MI2V等几种格式,Xine能支持MIP3, MIPEG-1, MIPEG-2、MSF等格式,不具备支持各种媒体格式

24、的可扩展能力,其中,ReallNetworhs公司的RealPlaver与开源软件hlplayer具有较好的可扩展性,能支持多种格式。5对于主流的流媒体编码算法(如RealNetworks公司的rn, Mlicrosoft公司的asf wmv, wma以及知apple公司的mov ),都不属于国际标准,也未得到公开,此类媒体的移植还存在一些问题。目前,知apple, RealNetworks公司已基于各自流媒体编码算法开发了Linux版本的播放器,但是这些播放器支持的媒体类型都比较单一,特别对于Microsoft的各种流媒体类型都未进行很好地支持为了构建Linux平台上能够支持上述三个系列的流

25、媒体播放器,国外已开展部分研究(国内还未见此类研究)。研究的技术路线可分为两种类型:一是通过WIN32 DLL plugin调用 Windows下PE (Portlble Executlble)格式的解码器。目前,Linux平台上集成化的播放器一般都采用这种方法,如遵循GNU GPL的播放器Xine与Mplayer,这两种软件都可支持包括asf格式的多种媒体的播放。然而,这种采用静态仿真的调用方式执行效率较低、可靠性差,而且在软件发布过程中存在版权问题。二是利用逆向工程(Reverse Engineering)来研究流媒体格式与编解码算法,这是流媒体编码技术移植的发展趋势。目前,人们已采用这种

26、方法对alsf编码进行了一定分析。这种采用逆向工程的方法可获取解码器的源码,从而保证解码器的可移植性,但是该方法的难度与工作量较大。51.4本设计应解决的主要问题拟解决的关键问题:1. 每个窗口类的制作和设计,界面的返回键如何制作;2. 怎么实现开机进入密码登录界面,输入密码错误时报错,在功能界面中如何修改密码;3. 如何将图片显示设置成窗口大小,并且赋予相册搜索图片的功能;4. 音乐播放器如何正常切换歌曲,如何对音频文件的路径进行设置,实现播放歌曲时快进和后退;5. 怎么将无线传输文档通过外接wifi模块,与PC之间进行文件传输;6. 如何让开发产品正常播放视频文件,如何编写它的切换程序;2

27、1总体设计本次设计总框架如下图1-1本次设计基于gec6818硬件平台基于linux系统使用QT更改交互界面和功能界面使用到了lcd电容触摸屏模块与存储模块、和emmc模块等主要模块。使用虚拟机在ubuntu中通过vscode、gcc编译软件编写程序并移植QT到ARM中实现图片展示、视频播放与无线传输等功能。实物的测试和检验功能完整性通过软件发送可执行文件实现程序的运行本次设计最终成品总体设计框架图2.1.1硬件电路设计本次设计是以ARM 芯片GEC6818开发板为硬件平台,GEC6818开发板简介:GEC6818是一款性能强劲的开发板,其核心为Cortex A53,属于主流智能产品常用的芯

28、片,它采用三星S5P6818作为主处理器,运行主频可高1.4GHz。支持3D图形、可以播放高分辨率的高清视频,作为实现设计主要功能的基本性能。是因为其中的主处理器SPV540芯片的高性能图形引擎powerVR SGX540。开发板硬件总框图如下图2-12-1硬件总框图本次使用的GEC6818控制系统中封装了很多模块,设计运用到最为重要的则是LCD触摸显示屏模块,因其可触控式液晶屏的功能实现了本次设计电子相册所需的最基本要求,并且拓展了触控操作屏幕的延展性。而GEC6818板载1GB DDR3内存,则作为运行linux系统的基本要求,DDR3性能优异也为流畅运行各种程序打好了基础。其中本次实现无

29、线传输的wifi模块外接在USB串口上,其中主芯片系统控制原理如下图2-3和主要硬件总框图2-3。内存模块图2-3主芯片系统控制原理图ARM Cortex-A53处理器音频模块外接无线WIFI模块触屏显示模块Flash模块电源模块 主要硬件总框图2.1.2软件设计本次设计用到的软件有虚拟机、Ubuntu、QT、vscode、secureCRT、gcc编译器等。软件设计的步骤大致有以下几部分: 安装 fastboot烧写linux映像进入开发板。下载并安装 secureCRT 工具,将开发板通过串口连接电脑,调节波特率11520和协议seral。开发板连接成功后显示启动信息, 配置完成如下图2-

30、3: 图2-2配置完成图接下来是进入 uboot 命令行模式,在 uboot 启动的 3 秒内按任意键, 执行命令fastboot,解压 fastboot 工具压缩包到一个目录下, 把 Linux 映像文件全部复制到该目录中。右键使用记事本编辑 Windows 脚本文件 auto.bat。 最后在 secureCRT 终端下, 会打印出如下图2-4信息,说明烧写成功。图2-4 linux系统烧写成功 在电脑上安装VMware Workstation并且新建虚拟机将光盘映像设置成自选。 安装程序设计所需的编译器,编译器vscode、GCC交叉编译器。 使用vscode编译并不会比QT自带的qma

31、ke方便,但基于本人习惯于vscode的编译环境,所以设计过程运用到了vscode。其中C程序编写在本次设计所需过程1.在电脑上使用虚拟机运行ubuntu,运用 Linux命令。2.GEC6818开发板的硬件平台搭建与交互。3.基于ubuntu使用vsode编写C代码,并使用arm-linux-gcc demo.c -o demo交叉编译器进行编译,因为在电脑上编程的C程序无法在开发板上正常运行,所以需要上述步骤。Vscode编程界面如下图2-5。图2-5 QT安装完成后会自动打开QT-creator如下图2-6图2-6 为实现良好的人机交互体验,使用QT-creator开发各功能界面。在Qt

32、 creator界面中添加信号和槽函数的相连关系,同时在代码中添加connect函数来实现各功能界面。图2-7 本次设计所有功能的界面都是基于QT,并且本次实现视频播放是使用QT自带的ffmpeg解码,图片的显示也同理。使用QT-creator开发的软件,相同的代码在不经过修改的前提下就可以在其他的平台上运行,因为QT-creator支持包括 Linux/X11、Windows、Embedded Linux 在内的多种平台。7QT-creator开发过程如下图2-8图2-8 由于嵌入式平台的设备通常硬件配置较低,一般都不会在这个目标嵌入式平台上进行开发,而是在通用桌面系统平台上开发完成后,拷贝

33、到嵌入式平台运行的。要能在 6818 平台上运行Qt 程序, 两个条件缺一不可: 一是 6818 平台上具有由 Qt Embedded 开放源码包经过交叉编译移植后的 Qt 动态运行库, 二是本次我设计开发编写的 Qt 应用程序也经过交叉编译。所以说此次qt编程设计,还需要将qt移植到arm平台上。需要首先下载交叉编译器,然后编译qt源码,配置裁剪qt的功能和开发板上的相关资源匹配,然后qt的lib和板子同步上去后, 因为在qt上编写代码的时候需要链接板子上相关的lib配置编译器。其中Qt的移植包括步骤如下:1. 配置,解压源码包到用户主文件夹中,编辑平台相关qmake.conf配置文件。修改

34、其中内容为QMAKE_CC = arm-linux-gccQMAKE_CXX = arm-linux-g+QMAKE_LINK = arm-linux-g+QMAKE_LINK_SHLIB = arm-linux-g+然后进行 configure 配置操作。当它询问是否许可开放源码的植入选YES,配置完成。2. 拷贝 Qt Embedded 库到 6818通过 NFS 挂载 Ubuntu 共享的目录到/mnt 下, 然后解压移植好的 Qt Qt Embedded 库到6818 的/usr/local 目录下。rootGEC6818 /# mount -o nolock,tcp 192.168.

35、1.196:/home/kitty/nfs_share /mntrootGEC6818 /# cd /mntrootGEC6818 /# tar Jxf Qt-Embedded-5.7.0.tar.xz -C /usr/local3. 设置环境变量,这里改变的是6818 平台里面的 Qt 运行环境变量,在/etc 目录下有个profile 文件, 这个文件是 Linux 系统启动后会自动执行的脚本, 我们在这文件末尾添加内容:export QTDIR=/usr/local/Qt-Embedded-5.7.0export PATH=$QTDIR/bin:$PATHexport QT_QPA_PL

36、ATFORM_PLUGIN_PATH=$QTDIR/pluginsexport QT_QPA_PLATFORM_PATH=$QTDIR/pluginsexport QT_QPA_PLATFORM=linuxfbexport QT_QPA_FONTDIR=/usr/share/fontsexport LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH#export QT_QPA_GENERIC_PLUGINS=evdevtouch:/dev/event0export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/

37、event0export QMLSCENE_DEVICE=softwarecontextexport QML2_IMPORT_PATH=$QTDIR/qml保存退出后, 可以利用 source 命令让其立即生效, 重启开发板,此时设置好开发板的环境变量了。 将开发好程序移植到6818开发板中实现ARM平台的功能。2.2程序设计2.2.1 程序设计主要思路本次设计的程序主要是由几大部分组成 分别是1.先通过QT-creator的做个桌面,主程序首先创建一个 QMain Window 类的对象,创建一个主窗口,划分出相册、视频播放器、无线传输、修改开机界面的密码等,从而用来切换那几个功能,设计一个

38、点击对应功能的图标就创建一个线程执行对应的任务。并且设计一个可以总是存在并且浮动与界面的返回键,可拉动其位置。主界面的布局以及按键代码见附录1。2.显示图片功能则是创建一个窗口,可以搜索图片目录。打开图片文件,图片根据后缀名解码然后再绘制到窗口上。创建两个按键,添加点击事件,最后实现点击切换图片。3. 视频播放器:创建一个窗口来搜索视频目录。打开视频文件,使用ffmpeg解析视频数据流,添加滑块控件,设置滑块事件来切换播放位置。4. 无线传输文档:打开文件,使用wifi通过tcp/ip协议把文件数据分块发送。5. 密码开关:通过qt-creator创建输入框,输入密码后校验密码,成功则可以操作

39、开关,失败返回上一级。2.2.2 核心问题分析本次设计核心部分是QT的程序开发对于硬件平台的推动,以下是对其中核心问题的分析(1)密码锁匹配问题设计主要实现开机提示输入密码,若密码正确直接进入功能选择界面若密码错误则提示“输入密码错误”。密码错误提示如下图2-10图2-10 密码的实现最主要的是要用open读取pass.txt中的数字并赋给一个数组,然后判断触摸屏输入位置,并将输入的数字存储在另一个数组,然后通strncmp(buf,pass,6)=0)比对输入数字串与pass.txt中预设的数字是否相同,若相同则密码正确,不同则密码错误循环后继续输入密码直到密码正确,其中若输入的密码小于六位

40、数则变成六位数的长度。(2)显示图片主要实现的功能包括:各类图片格式都可正常显示,触摸屏幕切换上一张或下一张图片。截取主要函数进行分析,首先是图片显示区域的自适应问题,设置成图片缩放到new QLabel的大小,使图片的大小随着窗口大小而改变。加载到然后是给按键定义点击事件,并且为了控制窗口的大小加弹簧QspacerItem,图片列表中上下布局调用main_layout的垂着布局,整个相册的框架显示基本可以实现,接收者参数可以设为 this 指针,其中如下代码 /* 图片显示区域 */ image_label = new QLabel(); image_label-setBackgroundR

41、ole(QPalette:Base); image_label-setSizePolicy(QSizePolicy:Ignored, QSizePolicy:Ignored); image_label-setScaledContents(true); /* 显示和按键在上下布局 */ main_layout = new QVBoxLayout(this); main_layout-addWidget(image_label); /* 按钮 */ btn_prev = new QPushButton(上一张); btn_next = new QPushButton(下一张); /* 用于布局的弹

42、簧 */ QSpacerItem* item_left = new QSpacerItem(75, 40, QSizePolicy:Expanding, QSizePolicy:Minimum); QSpacerItem* item_right = new QSpacerItem(75, 40, QSizePolicy:Expanding, QSizePolicy:Minimum); /* 按键水平布局 */ tool_layout = new QHBoxLayout(); tool_layout-addSpacerItem(item_left); tool_layout-addWidget(

43、btn_prev); tool_layout-addWidget(btn_next); tool_layout-addSpacerItem(item_right); main_layout-addLayout(tool_layout); /* 显示区域背景颜色 */ this-setLayout(main_layout); this-setStyleSheet(background-color: rgb(167, 175, 159);); /* 按键点击事件 */ connect(btn_prev, SIGNAL(clicked(bool), this, SLOT(on_click_btn_p

44、rev(); connect(btn_next, SIGNAL(clicked(bool), this, SLOT(on_click_btn_next();相册最终框图如下图2-11图2-11(3)音乐播放本次程序我们可以实现播放音乐、停止音乐、拉动进度条可实现歌曲的快进和后退、切换音源曲目。Mediaplayer本身编译自带了多种类型的解码器需,所以并不需要我而外在进行解码。先是对选择框和按钮框进行设置,判断触点和设置其坐标,形成一个音乐播放器的框架,创建MediaPlaer对象player = new QMediaPlayer;;接着就是选择播放音乐事件,调用connect()函数拖动进度

45、条可发送事件到Player。以下截取的是播放音乐片段 /选择播放音乐事件 connect(widgetSearchFilter, SIGNAL(signal_current_select_file(QString), this, SLOT(on_signal_play(QString); connect(mview-buttonNext, SIGNAL(clicked(), this, SLOT(on_signal_next(); connect(mview-buttonPrev, SIGNAL(clicked(), this, SLOT(on_signal_prev(); 编译在播放音乐的时

46、候往往会使用多线程,所以由于开启了线程,我们必须使用QT中的QstackedWidget函数,父、子进程就能进行数据共享。完整代码见附录1在Linux音乐播放界面中的窗口布局如下图2-12图2-12(4)播放视频功能 本次设计播放视频程序主要实现视频的播放与切换,根据视频文件放置的路径,设置它的播放路径,将文件添加进此路径中,然后设置列表的播放顺序设置循环; /* 设置顺序播放模式 */ playerlist-setPlaybackMode(QMediaPlaylist:Sequential); player-setPlaylist(playerlist);然后启动视频输出窗口,显示视频播放界面。给按键添加“暂停”和“继续播放”的事件。我们自定义的 Button通过 用 connect 的方法连接两个槽信号。接着给设置暂停播放的图片一个if-else语句添加点击逻辑,若是点击一次暂停时则继续播放,播放时则继续暂停,分为两条语句,真假只执行其一。/* 按键 */this-buttonStart

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 嵌入式开发

宁ICP备18001539号-1