收藏 分享(赏)

ARM嵌入式网络电台播放器.doc

上传人:wo7103235 文档编号:6250765 上传时间:2019-04-03 格式:DOC 页数:30 大小:749.50KB
下载 相关 举报
ARM嵌入式网络电台播放器.doc_第1页
第1页 / 共30页
ARM嵌入式网络电台播放器.doc_第2页
第2页 / 共30页
ARM嵌入式网络电台播放器.doc_第3页
第3页 / 共30页
ARM嵌入式网络电台播放器.doc_第4页
第4页 / 共30页
ARM嵌入式网络电台播放器.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、厦门大学本科毕业论文ARM 嵌入式网络电台播放器IARM 嵌入式网络电台播放器摘要 随着 PDA 正朝着计算、通讯、娱乐、电子商务等多功能的融合的趋势发展,结合近十多年来,网络电台也随着信息技术的发展迅猛地流行起来。本文立足于 PDA 的终端应用,以三星公司的基于 ARM RISC 架构的 S3C2410 处理器为硬件基础,以嵌入式 Linux 操作系统为软件基础,提出并研究设计了一款针对 PDA 终端的网络电台播放器的解决方案。该方案以高性能处理器,mplayer 解码器和嵌入式 Linux 操作系统为核心进行系统设计,可以支持绝大多数的流媒体编码格式,也可以支持当地音频文件。关键词 网络电

2、台 PDA ARM 嵌入式平台 播放器厦门大学本科毕业论文ARM 嵌入式网络电台播放器IINetworking Radio Player on ARM Embedded SystemAbstract Along with PDA develops into the trend of performing the computation, communication, entertainment, electronic commerce etc. multiple-functions integrated. And, in the past decade, the information tec

3、hnology developed very fast, the network radios, with its progress, spread its popularity widely in the net world. This paper, based on applications on the PDA terminal, with Samsung S3C2410 processor of the ARM RISC structure for the hardware foundation, takes embedded Linux operating system as the

4、 software foundation. It puts forward and studies to design a solution of the network radios player that aims at the PDA terminal. This project takes the high performance processor, the mplayer decoder and embedded Linux Operating system as the core to carry on the system design. It can support the

5、streaming media formats of great majority, and also local audio media files. Key Words Networking Radio PDA ARM Embedded System Player Box厦门大学本科毕业论文ARM 嵌入式网络电台播放器III目录第一章 绪论 11.1. 课题背景 11.2. 论文的研究内容及所作的工作 .21.3. 文章结构及说明 .2第二章 网络电台播放器的总体设计方案 .32.1. 软件系统的硬件平台选择 .32.1.1. 硬件平台总体架构 42.2. 软件系统的开发环境 62.2.1

6、. 嵌入式系统的应用 72.2.2. GCC 简介 .72.2.3. GNU Make 工具介绍 82.2.4. Qt/Embedded 开发环境简介 .82.2.5. Microsoft Visual C+ 6.0 简介 .112.2.6. Mplayer 简介 11第三章 系统软件设计 133.1. 系统总体设计 .133.2. 详细设计 143.2.1. 电台搜索引擎模块 143.2.2. 数据库更新模块 .153.2.3. 数据库设计 .163.2.4. 网络电台播放模块 173.3. 电台搜索引擎试验结果 203.4. ARM 嵌入式网络播放器试验结果 21第四章 总结 22致谢语

7、.23参考文献 .24附录 .25厦门大学本科毕业论文ARM 嵌入式网络电台播放器IVContentsChapter 1 Preview 11.1. The Background Study11.2. Research Object and Related Work21.3. Organization of this Article and Related Descriptions.2Chapter 2 The Overall Design on Net Radio Player Project.32.1. The Hardware Platform for the Software Syst

8、em32.1.1. Overview of the Hardware Platform.42.2. The Software System Developing Environment62.2.1. Application on Embedded System.72.2.2. Introduction to GCC.72.2.3. Preface of GNU Make Tool .82.2.4. Breif Intoduction to Qt/Embedded Developing Enivronment .82.2.5. Overview of Microsoft Visual C+ 6.

9、0 .112.2.6. Summary of Mplayer .11Chapter 3 The Software System Design 133.1. The Overall Design of System 133.2. The Specific Design for System143.2.1. The Radio Search Engine .143.2.2. The Database Updating Mould153.2.3. The Database Schema163.2.4. The Networking Radio Player173.3. Experiment Resu

10、lts for The Radio Search Engine203.4. Experiment Results for The Networking Radio Player21Chapter 4 Summary22Acknowlegement 23References .24Supplement.25厦门大学本科毕业论文ARM 嵌入式网络电台播放器1第一章 绪论1.1. 课题背景网络广播的兴起与互联网的兴起密不可分。互联网的兴起给广播带来了巨大的冲击,又与传统广播进行着多方位的融合,在一定程度上弥补了广播传播稍纵即逝、仅有声音而无图文、不能自由选听节目的缺憾。网络使广播吸引更多受众的参与,

11、为广播以另一种形态发展提供了条件,这些网络站点不仅仅是那些传统广播站在网络的延伸,由于流媒体技术的成熟,许多个人(播客)或商业门户网站也纷纷推出有针对性的,面对网络的电台,他们是网络广播的主要参与者和中坚力量。网络广播在互联网取得成功的同时,也存在着一些自身发展不足的地方。当前网络广播并没有传统电台广播一样的听众范围,是因为传统广播的接受设备是一只小收音机,不仅价格低廉而且容易携带,操作简使。网络电台的收听设备主要是有固定网络接入的个人电脑,和传统收音机相比,计算机体积较大,并且不易操作,大大地限制了网络电台的发展,而 PDA 的便携性,网络接口和无线网络接口,刚好可以弥补这个缺陷。随着信息技

12、术的发展和数字化产品的普及,Internet 得到广泛的应用,从消费电器到工业设备,从民用产品到军用器材,嵌入式系统被应用到网络、手持通信设各、国防军事、消费电子和自动化控制等各个领域。在此诸多应用当中,智能掌上设备具有广阔的应用前景。其代表性产品 PDA(Personal Digital Assistant,个人数字助理) 以其携带方便、实用性强等优势成为备受瞩目的明星产品之一。作为一种新型的便携式数字信息产品,PDA 在国内己经形成了一个较大的市场。国内主要的 PDA 厂商包括: 方正、海信、金长城、联想、名人、恒基伟业、文曲星、好易通、快译通、蓝德、胜利、海尔、LEO 等。然而从 200

13、2 年开始至今,PDA 市场的销售情况出现了持续的下降趋势。据统计除去整个市场大环境欠佳之外,目前 PDA 产品所存在的问题也是不容忽视的。分析后认为,当前的 PDA 产品绝大多数都是针对个人的日常事务处理和休闲娱乐而设计的,功能局限在一定的范围之内,相对比较单一。众多的生产厂家竞争的焦点往往集中在了产品的外形、价格、性能上,设计思想并没有多大的发展。虽然近年来,PDA 既可以通过上网或调频收听电台,但提供一款及可以通过上网和调频收听电台广播的软件比较少见。目前在应用于 PDA 的嵌入式操作系统中, Palm OS 和微软的 WinCE /Pocket PC 占据厦门大学本科毕业论文ARM 嵌

14、入式网络电台播放器2了大多数的市场份额,成为 PDA 主流操作系统。然而随着嵌入式 Linux 技术的不断成熟,选用 Linux 作为操作系统的厂家也日益增多。各个 PDA 生产商也纷纷推出 Linux PDA 的计划。而随着 Linux 在 PDA 应用上的不断成熟,未来还会有更多的厂商选择 Linux。Linux 的跨平台特性为 PDA 功能的扩展提供了方便。基于以上对网络电台和 PDA 现状的研究和分析,结合当前可以利用的成熟技术,提出了以 PDA 为基础,实现网络电台播放功能扩展研究。1.2. 论文的研究内容及所作的工作论文设计和实现了一套基于 ARM Embedded System

15、的网络电台播放软件,在Redhat 9.0 上开发,交叉编译后在傅立叶 S3C2410 嵌入式高级教学实验箱上调用 mplayer实现播放,播放的数据来自电台搜索引擎得到的电台,电台信息存在数据库中,这部分在Windows 上用 Microsoft Visual C+ 6.0 调用 MFC 库实现。1.3. 文章结构及说明本文分为两部分。第一部分是设计实现电台搜索引擎,收集电台信息,建立电台数据库。逐个检查数据库中的电台播放地址,对其中以*.pls,*.m3u,*.asx 结尾的播放地址进行解析,得到是 mms,rtsp或其他流媒体协议的播放地址或其他可以直接播放的电台地址,并存在与当前电台相

16、对应的字段中。第二部分是 ARM 嵌入式平台上电台播放器的开发。在 FFT-S3C2410 上实现了通过网络播放电台,并且播放器可以播放本地音频文件。论文中首先阐述了当前网络电台的现状及不足,结合 PDA 的发展状况,点出两者结合的可能性,达到“双赢”的效果。第一章介绍了网络电台的发展历程和现实问题以及 PDA技术及其市场现状。第二章介绍了 ARM 嵌入式系统以及嵌入式 Linux 技术细节。第三章给出电台搜索引擎的实现及数据库细节。第四章给出电台播放器的实现细节。第五章进一步工作及展望。厦门大学本科毕业论文ARM 嵌入式网络电台播放器3第二章 网络电台播放器的总体设计方案基于流媒体技术的 P

17、DA 网络电台播放如图 1 所示, 用户通过 ADSL 或 LAN 或无线网络连接上网络后, 使用网络浏览器登陆网站, 选择某个播放列表进行点播, 这时流媒体服务器和播放终端通过流媒体协议进行数据传输前的协调。协调完毕, 流媒体服务器开始向 PDA传送媒体数据流。PDA 终端使用播放软件对这些音视频流解码, 并把信息传送到显示屏上播放出来。图表 1 网络电台播发器总体设计结构图2.1. 软件系统的硬件平台选择由于项目定位于 PDA 多功能终端的应用 , 需要支持无线上网, 流媒体播放,语音处理等队处理能力要求较高的应用。因此我们选择的开发平台的核心处理器有强大的处理能力, 丰富的接口, 支持

18、DMA 方式, 音频接口以及较低的功耗。同时为了方便软件开发, 需要处理器能够对嵌入式操作系统有较好的支持,图 2 为开发平台的简单硬件示意图。基于以上考虑, 我们选择了西安傅立叶电子科技有限公司生产的 FFT-S3C2410。以下详细介绍平台上的各主要部件。厦门大学本科毕业论文ARM 嵌入式网络电台播放器4图表 2 开发平台的简单硬件示意图2.1.1.硬件平台总体架构系统采用西安傅立叶电子科技有限公司生产的 FFT-S3C2410 为嵌入式开发平台。该平台使用带有 ARM920T 内核支持的 SOC 芯片的 S3C2410 处理器,主频为 203MHz,核心板上带有 64M NandFlas

19、h 和 64M SDRAM,可升级 128M,支持 WINCE/Linux/Ucos-II和 Qt/Embedded 的运行。主板上为处理器提供了一系列的系统外围设备: 8 寸 LCD,触摸屏,10M/100M 以太网,IIS 音频输入/输出接口。图 3 为实验箱的实物图。图表 3 FFT-S3C2410 实物图1. S3C2410 处理器介绍S3C2410 微处理器为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。S3C2410A 的显著特性是它的 CPU 核心, 是一个由 Advanced RISC 厦门大学本科毕业论文ARM 嵌入式网络电台播放器5Machine

20、s 有限公司设计的 16/32 位 ARM920T RISC 处理器。ARM920T 实现了 MMU, AMBA BUS 和 Harvard 高速缓冲体系结构。这一结构具有独立的 16KB 指令 Cache 和16KB 数据 Cache, 每个都是由 8 字长的行构成。通过提供一系列完整的系统外围设备 , S3C2410A 大大减少了整个系统的成本, 消除了为系统配置额外器件的需要。工作频率最高达到 203MHz, 同时具有内存管理单元(MMU), 使得处理器轻松运行于 Windows CE, Linux 等操作系统以及进行较为复杂的信息处理。(1) S3C2410 芯片集成了大量的功能单元

21、内部 1.8V,存储器 3.3V,外部 I/O3.3V,16KB 数据 Cache,16KB 指令Cache,MMU。 内置外部存储器控制器(SDRAM 控制和芯片选择逻辑) 。 LCD 控制器,一个 LCD 专业 DMA。 4 个带外部请求线的 DMA。 3 个通用异步串行端口(IrDA1.0 ,16-Byte Tx FIFO and 16-Byte Rx FIFO) ,2 通道SPI 一个多主 I2C 总线,一个 I2S 总线控制器。 SD 主接口版本 1.0 和多媒体卡协议版本 2.11 兼容。 两个 USB HOST,一个 USB DEVICE(VER1.1) 。 4 个 PWM 定时

22、器和一个内部定时器。 看门狗定时器。 117 个通用 I/O。 56 个中断源。 24 个外部中断。 电源控制模式:标准、慢速、休眠、掉电。 8 通道 10 位 ADC 和触摸屏接口。 带日历功能的实时时钟。 芯片内置 PLL。 设计用于手持设备和通用嵌入式系统。 16/32 位 RISC 体系结构,使用 ARM920T CPU 核的强大指令集。 带 MMU 的先进的体系结构支持 WinCE、EPOC32、Linux。 指令缓存(Cache) 、数据缓存、写缓存和物理地址 TAG RAM,减小了对主存储器厦门大学本科毕业论文ARM 嵌入式网络电台播放器6带宽和性能的影响。 ARM920T CP

23、U 核支持 ARM 调试的体系结构。 内部先进的位控制器总线(AMBA) (AMBA2.0,AHB/APB ) 。(2) 系统管理 小端/大端支持 地址空间:每个 BANK128MB(全部为 1GB) 。 每个 BANK 可编程为 8/16/32 位数据总线。 BANK0 到 BANK6 为固定起始地址。 BANK7 可编程 BANK 起始地址和大小。 一共 8 个存储器 BANK。 前 6 个存储器 BANK 用于 ROM、SRAM 和其它。 两个存储器 BANK 用于 ROM、SRAM、和 SDRAM(同步随机存储器) 。 支持等待信号用以扩展总线周期。 支持 SDRAM 掉电模式下的自刷

24、新。 支持不同类型的 ROM 用于启动(NOR/NAND Flash、EEPROM 和其它) 。(3) 芯片封装 272-FBGA 封装2.2. 软件系统的开发环境根据系统目标,我们建立系统的开发环境,一个是在开发板上模拟系统运行进行系统调试的环境,一个是程序的开发平台。电台搜索引擎这部分,为方便开发,我们在 Windows上,利用 VC+ 6.0 Studio 开发工具对其实现,搜索到的数据可以用 Microsoft Access 数据库存放。因为开发板上安装的操作系统是 Linux,图形界面用 QT 实现,所以对播放器开发过程,选择在 RedHat 9.0 上,利用自带的各种编译连接工具和

25、 QT 库实现,代码编辑可以用 QT Designer 或简单编辑器编写。系统最终是在开发板上模拟运行,必须对 PC 上的程序进行交叉编译和移植,需要下载 Qt/Embeded 库。系统模拟环境是在嵌入式 Linux 操作系统下进行,运行环境需要 Qte 库 QPE 的支持,播放时调用 MPlayer 解码器。下面详细介绍各部分。厦门大学本科毕业论文ARM 嵌入式网络电台播放器72.2.1.嵌入式系统的应用嵌入式 Linux 操作系统越来越多地成为嵌入式系统设计的主流。其具有任务调度、存储管理、消息队列、中断处理等现代操作系统特征; 并且针对嵌入式系统进行了优化, 具有体积小、固化容易、现场实

26、时反应能力强、可靠性好等特点; 而且操作系统本身包含 TCP/ IP 协议栈, 以及大量跟硬件相关的驱动程序。另外 Linux 操作系统上的开发资源十分丰富, 为嵌入式软件开发人员提供了良好的开发平台。选择 Linux 为嵌入式操作系统的原因: 可应用于多种硬件平台。Linux 已经被移植到多种硬件平台,这对受开销、时间限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发然后移植到具体的硬件上,加快了软件与硬件的开发过程。 Linux 可以随意地配置不需要任何的许可证或商家的合作关系。 它是免费的,源代码可以得到。这是最吸引人的。毫无疑问,这会节省大量的开发费用。 它本身内置网络支持。

27、 Linux 的高度模块化使添加部件非常容易。 Linux 在台式机上的成功,使大家看到了 Linux 在嵌入式系统中的辉煌前景。2.2.2.GCC 简介Linux 系统下的 GCC(GNU C Compiler)是 GNU 推出的功能强大、性能优越的多平台编译器,是 GNU 的代表作品之一。GCC 是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高 20%30%。GCC 编译器是GUN 项目中符合 ANSI C 标准的编译系统,不仅能够编译 C、C+和 Object C 等语言编写的程序,更值得称道的是它还可以通过不同的前端模块来支持各种语言,如Ja

28、va、Fortran、Pascal 、 Modula-3 和 Ada 等等。最值得称道的是我们可以通过 GCC 交叉编译器,在 I386-RedHat9.0 主机平台上编译生成目标板上可以运行的程序。虽然我们称 GCC 是 C 语言的编译器,但使用 GCC 由 C 语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。 命令 GCC 首先调用 GCC 进行预处理,在预处理过程中,对源代码文件中的文件包含厦门大学本科毕业论文ARM 嵌入式

29、网络电台播放器8(include)、预编译语句 (如宏定义 define 等)进行分析。接着调用 cc1 进行编译,这个阶段根据输入文件生成以.o 为后缀的目标文件。汇编过程是针对汇编语言的步骤,调用 as 进行工作,一般来讲,.s 为后缀的汇编语言源代码文件和汇编, .s 为后缀的汇编语言文件经过预编译和汇编之后都生成以.o 为后缀的目标文件。当所有的目标文件都生成之后,GCC 就调用ld 来完成最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。GCC 的基本命令格式:gcc op

30、tionfilename,其中 option 为编译选项。2.2.3.GNU Make 工具介绍在 Linux 编程中,我们也经常开发比较大的工程,工程会包含较多的源文件,如果每次用手动键入 gcc 命令和文件名时,效率会很低,如果使用 GNU 的 make 工具能够比较容易的构建一个工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。make 命令执行时,需要一个 Makefile 文件,以告诉 make 命令需要怎么样的去编译和链接程序。Make 的规则是:(1) 如果这个工程没有编译过,那么我们的所有 C 文件都要编译并被链接。(2) 如果这个工程的某几个 C 文件被

31、修改,那么我们只编译被修改的 C 文件,并链接目标程序。(3) 如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的 C 文件,并链接目标程序。只要我们的 Makefile 写得够好,所有的这一切,我们只用一个 make 命令就可以完成,make 命令会自动智能地根据当前的文件修改的情况来确定哪些文件需要重编译,从而自己编译所需要的文件和链接目标程序。2.2.4.Qt/Embedded 开发环境简介1. Qt/Embedded 简介Qt/Embedded 是基于 Qt 的嵌入式 GUI 和应用程序开发的工具包,它可运行多种嵌入厦门大学本科毕业论文ARM 嵌入式网络电台播放器9式设

32、备上,主要运行在嵌入式 Linux 系统上,并且需要 C编译器的支持,并为嵌入式应用程序提供 Qt 的标准 API。 Qt/Embedded 的 API 是基于面向对象技术的。在应用程序开发上使用与 Qt 相同的工具包,只需在目标嵌入式平台上重新编译即可。使用所熟悉的桌面开发工具,来编写和保存一个嵌入式应用程序的源代码树,在移植到多种嵌入式平台时,只需要重新编译代码。 Qt/Embedded 提供自身的轻量级窗口系统,比使用 Xlib 和 X Window更加紧凑;Qt/Embedded 的设计原则是不依赖于 X server 或者 Xlib,而是直接访问帧缓存(framebuffer) ,同

33、其他解决方案如 Qt/X11 相比这样做最显著的效果是减少了内存消耗。只需要一个 Qt/Embedded 动态链接库就足以替代 X server、Xlib 库和其他嵌入式解决方案的图形工具包。 Qt/Embedded 还可以在编译时去掉运行时所不需的特性,以减少内存的占用。Qt/Embedded 也提供了一种类型安全的被称之为信号与插槽的真正的组件化编程机制,这种机制和以前的回调函数有所不同。Qt/Embedded 的底层图形引擎基于 framebuffer。Framebuffer 是在 Linux 内核架构版本 2.2 以后推出的标准显示设备驱动接口。采用 mmap 系统调用,可以将 fra

34、mebuffer 的显示缓存映射为可连续访问的一段内存储针。Framebuffer 驱动程序的实现分为两个方面:一方面是对 LCD 及其相关部分的初始化,包括画在缓冲区的创建和对 DMA 通道的设置;另外一方面是对画面缓冲区的读写,具体到代码为 read、write、lseek 等系统调用接口。现在许多第三方软件公司开始采用 Qt/Embedded 开发嵌入式 Linux 下的应用软件。其中非常著名的 Qt Palmtop Environment(Qtopia)早期是一个第三方的开源项目,并已经成功应用于多款高档 PDA。 Trolltech 公司针对 Smart-Phone 中的应用需求,于

35、 2004 年 5 月底发布了 Qtopia 的 Phone 版本。Qtopia 是基于 qt/embedded 程序库编写的应用程序环境, 是针对运行嵌入式 Linux 的移动计算设备和手持设备所开发的开放源码的一套应用程序包和开发库,界面优美。主要应用于高端手机,PDA 等嵌入式系统,具有广阔的发展前景。以下就进一步介绍如何交叉编译 Qte 以及移植*.so 库至实验板。2. Qt/Embedded 的交叉编译及移植 配置 Qt/Embedded-Free-3.2.0 的安装因为程序功能的需要,我们需要 QTE3.0 以上版本的库文件,所以接下来着重介绍Qt/Embedded-Free-3

36、.2.0 的交叉编译和移植过程。与 QTE 相对应的 Qtopia 版本需要 2.0以上,在 FFT-S3C2410 开发板上,在默认的目录里已经存在 Qtopia 2.0 的库文件,所以不需要重新交叉编译,移植。编译 QTE3.0 以上版本的库文件需要 qmake 工具,在下载下来的 QTE 包中,已经包含一个 qmake 目录了。以下是交叉编译步骤:厦门大学本科毕业论文ARM 嵌入式网络电台播放器10tar qt-embedded-free-3.2.0.tar.gzcd qt-embedded-free-3.2.0export QTDIR=$PWDexport QTEDIR=$QTDIRe

37、xport PATH=$QTDIR/bin:$PATHexport LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHmake clean./configure xplatform /qws/linux-arm-g+ -shared release no-cups no-qvfb depths 4,8,16,32make sub-src这一步是编译生成库文件,但不编译其他的(如 tools、examples 目录下的东西) 。编译完成会在 lib 目录下生成库.在 lib 目录下面可以看到libqte.so、libqte.so.3 、libqte.so.3.

38、2 ,libqte.so.3.2.0 这四个库。这四个库的关系如下:libqte.so - libqte.so.3.2.0libqte.so.3 - libqte.so.3.2.0libqte.so.3.2 - libqte.so.3.2.0libqte.so.3.2.0我们可以使用 file 命令来查看 libqte.so.3.2.0 是否是我们需要的在开发板上跑的库。File libqte.so.3.2.0libqte.so.3.2.0: ELF 32-bit LSB shared object,ARM,version 1(ARM),not stripped如果得到的是上面这些信息,说明交

39、叉编译 qte 库成功。下面我们就可以把这四个库移植到开发板的/qt/lib/目录下了。 移植首先要建立宿主机和开发板的通讯,设本机的 ip 地址为 192.168.0.100 并且设/root/share 为共享文件夹。打开 minicom 控制台,初始化完成之后,在控制台中输入:mount t nfs o nolock 192.168.0.100:/root/share /host将文件复制到开发板上cp arf /$QTEDIR/lib libqte.so* /root/sharecp arf /mnt/nfs/libqte.so* /qt /qt/lib厦门大学本科毕业论文ARM 嵌入

40、式网络电台播放器11至此,qte 交叉编译和移植完成。2.2.5.Microsoft Visual C+ 6.0 简介Microsoft Visual C+ 6.0(MSVC)是美国微软公司的 C+开发工具,是具有集成开发环境的产品,可提供编辑 C,C+以及 C+/CLI programming language 等电脑语言。VC+ 整合了便利的除错工具,特别是整合了微软视窗程序设计(Windows API)、3D 动画 DirectX API, Microsoft .NET Framework。Visual C+以拥有“语法高亮”, IntelliSense (acoding autocom

41、pletion feature)以及高级除错功能而著称。比如,他允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。Microsoft Visual C+ 6.0 为程序员提供 MFC 编程,提高编程效率。在 VC6.0 开发平台上,支持 MFC 的开放式数据库链接(ODBC) 。MFC,是一个微软公司提供的类别库(class libraries),以 C+类的形式封装了 Windows的 API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量句柄封装类和很多 Windows 的内建控件和组件。MFC 的主

42、要优点是可以用面向对象的方法来调用 Windows API,以及应用程序开发的便捷。MFC 将很多应用程序开发中常用的功能自动化,并且提供了文档框架视图结构和活动文档这样的便于自定义的应用程序框架。同时,在 Visual C+内部也内建了很多对 MFC的例如类向导这样的支持以减少软件开发的时间,使用类向导可以生成从 hello world 这样的简单程序到活动文档服务器这样的复杂程序。MFC 的消息映射机制也避免了使用性能较低的庞大虚函数表。2.2.6.Mplayer 简介Mplayer 是一个面向 Linux 操作系统(也包括 Unix 操作系统)的媒体播放软件。它能通过使用一些本地的编码器

43、如 XAnim,RealPlayer ,和 Win32 DLL,来播放大多数MPEG,VOB,AVI,OGG,VIVO,ASF/WMV,QT/MOV,FLI,RM,NuppelVideo,yuv4mpeg,FILM,RoQ 文件。另外,你还能通过 Mplayer 观看VideoCD,SVCD,DVD ,3ivx,RealMedia ,和 DivX 格式的电影(不需要 avifile 库)。厦门大学本科毕业论文ARM 嵌入式网络电台播放器12Mplayer 的另外一个特点是支持各种各样的输出驱动程序。它可以在 X11,Xv,DGA, OpenGL,SVGAlib,fbdev ,AAlib ,Di

44、rectFB 下工作,而且你也能使用 GGI 和 SDL(由此可以使用他们支持的各种驱动模式) 和一些低级的硬件相关的驱动模式(比如 Matrox,3Dfx和 Radeon, Mach64,Permedia3) !他们大多数支持软件或者硬件缩放,因此你能在全屏下观赏电影。MPlayer 还支持通过硬件 MPEG 解码卡显示,诸如 DVB 和 DXR3 与Hollywood+。可以使用 European/ISO 8859-1,2(匈牙利语,英语,捷克语等等),西里尔语,韩语的字体的清晰放大并且反锯齿的字幕(支持 10 种格式),和 on screen display(OSD)。厦门大学本科毕业论

45、文ARM 嵌入式网络电台播放器13第三章 系统软件设计3.1. 系统总体设计整个系统被设计为六大功能模块:电台搜索引擎模块,数据库更新模块,服务器模块,电台网页显示模块,电台地址解析模块,网络电台播放模块。系统的总体架构图,如图 4 所示。图表 4 系统功能模块图在图 4 中,电台搜索引擎模块,主要功能是搜集 网站的网络电台信息,把搜索到的电台信息存放在数据库;服务器端模块,主要功能是用于存放和管理电台数据库用的;数据库更新模块,主要功能是把网站中新添加的电台纪录进行更新到数据库中;电台地址解析模块,主要功能是对搜索到的电台地址进行清洗和解析,得到是流媒体协议的电台地址或可以直接播放的电台地

46、址;电台网页显示模块,主要功能是读取服务器端中的数据库的电台数据,用网页的形式显示给用户;网络电台播放模块,主要功能是提供播放器播放网络电台和浏览电台相关信息。下面我主要解释电台搜索引擎模块、数据库更新模块、数据库模块,网络电台播放模块的详细设计和实现。厦门大学本科毕业论文ARM 嵌入式网络电台播放器143.2. 详细设计3.2.1.电台搜索引擎模块图表 5 电台搜索引擎运作流程图图 5 是该模块的运作流程图,电台搜索引擎是针对特定网站搜索的,我们选择 网络电台网站,这是一个免费电台播放站点。网站电台按类型和地域两大标签来组织。电台搜索引擎的功能就是从这两个分支开始的。首先,程序须从首页开始,

47、提取出任何可能包含电台记录的各个网页地址(首页分析,类 GetFinalLocWeb)。下一步,就对这每一个网页进行分析(类 HtmlCodeParsing),取得每一个电台的播放地址及相关信息。在第一步收集网页地址的过程中,因为按类型和地域分类的电台的组织层次不一样,处理过程也不一样。在网站的首页中,点击按类型组织的表中的各种不同类型的链接,直接可以进入该类型的网页。网页包含了属于这个类型的每个电台,从首页进入该页面,只有一个链接,这样我们就得到我们需要的网页链接,把这个类型的网页地址保存到类型数据表(表格 3)中,为下面的具体电台搜索提供链接;而点击按地域组织的表中的各个不同的地区链接,会

48、得到两种不同的电台网页组织结构,一种是在网页里直接列出属于这个地区的各个国厦门大学本科毕业论文ARM 嵌入式网络电台播放器15家的名称和属于该国家的电台,遇到这种情况需要保存这个地区的网页地址到地域数据表中,而另外一种情况是在网页里列出属于该地区的各个国家的链接,结果你无需保存这个地区的链接地址,但必须保存这个网页里的各个国家链接地址到类型数据表(表格 1)中。这个步骤完成之后,进行下一步网页分析过程。在网页分析(类 HtmlCodeParsing)过程中,我们需要下载网页(GeneralProcedure 中的 OpenWebsite 函数),这些网页的链接存在表格 1 和表格 3 中。因为

49、各个网页的电台记录的组织表格不一样,有 3 个字段的,4 个字段的, 5 个字段的三种形式。但无论是那种形式的表格,每个表格的前三个字段都包含有 Radio Station, Location, Listen Live。所以在下载网页后,提取电台记录之前,先判断网页中的表格字段数值(类 GeneralProcedure 中的GetNumofColumn 函数)。有了这个值之后,每个网页的电台纪录提取和存储过程都一样,只是多了判断是否还有电台信息可以继续提取,提取的电台信息包括电台名称(getStationName 函数)、电台首页(getStationWeb 函数)、电台地域(getStationLoc函数)、流媒体格式(getMediaType 函数),比特率(getMediaBitRate 函数)和比特率相对应的播放地址(getHrefBitRate 函数)。在存储(SetRadioInfo 函数)的时候需要一个判断,判断该电台纪录是按什么方法被分类(类型或地域)的,这对存储正

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

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报