首页 基于Wince 5.0的嵌入式流媒体播放器开发 --Internet Radio 客户端设计与实现---毕业论文

基于Wince 5.0的嵌入式流媒体播放器开发 --Internet Radio 客户端设计与实现---毕业论文

举报
开通vip

基于Wince 5.0的嵌入式流媒体播放器开发 --Internet Radio 客户端设计与实现---毕业论文基于Wince 5.0的嵌入式流媒体播放器开发 --Internet Radio 客户端设计与实现---毕业论文 本 科 毕 业 论 文 基于Wince 5.0的嵌入式流媒体播放器开发 --Internet Radio 客户端设计与实现 Development of an Embedded streaming media player base on Wince 5.0 --Design and Implementation of Internet Radio client software 摘 ...

基于Wince 5.0的嵌入式流媒体播放器开发 --Internet Radio 客户端设计与实现---毕业论文
基于Wince 5.0的嵌入式流媒体播放器开发 --Internet Radio 客户端设计与实现---毕业论文 本 科 毕 业 论 文 基于Wince 5.0的嵌入式流媒体播放器开发 --Internet Radio 客户端设计与实现 Development of an Embedded streaming media player base on Wince 5.0 --Design and Implementation of Internet Radio client software 摘 要 21世纪是媒介大震荡、大变动、大改组、大融合的时期。随着Internet的发展,广播与网络的强强联合,带来了广播业的划世纪的发展。近年来,网络音乐,特别是网络电台的风行,受到越来越多的大众追棒。随着网络广播的飞速发展,各种形式的网络音乐内容提供商如雨后春笋般地出现,为未来实体的网络收音机的风行带来了巨大的商机。 作为毕业设计课题,我们设计开发了一款能在基于Windows CE 5.0平台的嵌入式硬件上收听全球流媒体音频节目的播放器。该播放器基于Windows CE 5.0 平台,通过无线网络或有线网络与Web Service服务器和流媒体服务器进行交互,集成了节目列表浏览、节目搜索、节目点评推荐和流媒体播放功能。 本文阐述了基于Windows CE平台的嵌入式流媒体播放器的软件设计。本流媒体播放器的多媒体终端基于Samsung S3C2440处理器,采用Windows CE 5.0作为操作系统,以Visual Studio2005为开发工具,采用WTL进行界面动画和其他效果的设计。本文从软、硬件平台特性和网络流媒体的特点入手,重点论述基于Window CE5.0平台的嵌入式流媒体音频播放器的设计及实现方法,主要包含网络收音机程序的UI设计、控制器模块设计、数据存储模块设计、音频播放引擎的设计和网络通信模块设计,之后展示软件的运行及测试结果,最后对本课题开发的嵌入式流媒体音频播放器做了总结,展望该领域未来的技术发展方向和行业前景。 关键词:Windows CE 5.0;网络收音机;嵌入式流媒体;WTL Abstract The 21st century is a media big bang, big changing, big reshuffling and big amalgamating period. With the development of Internet, the powerful alliances forming by broadcasting and Internet brought the broadcasting industry mark a century. In recent years, online music, especially the popular Internet radio stations has been more and more popular. With the rapid development of network broadcasting, all forms of online music’s providers sprung up such as emerging, these brought great business opportunities for the Physical Internet Radio. As a graduation design subject, we design a Windows CE 5.0-based embedded hardware platform to listen to the Web broadcast from all over the world. The player is based on Windows CE 5.0 platform, through a wireless network or cable network interacting with Web Service server and streaming media server, integrating the list browsing program, searching program, recommending program, Commenting program and streaming media player program. The thesis designs and realizes the software of a Windows CE-based embedded streaming media player. This project is base on ARM2440 processor. It use Windows CE 5.0 as the operating system, use Visual Studio 2005 as the develop tools, use WTL for animation design. This paper starts with the basic tenets of hardware’s and software’s platform characteristics and network streaming media features. Focus on Window CE 5.0-based embedded streaming media audio player's design and implementation, including the UI module design, the controller module design, the date storage module design, the audio player engine design and Network communication module design. Also I will show the operation and test results of this software. Finally, the prospect of further research work is proposed based on this paper. Keywords: Windows CE 5.0; Internet Radio; Embedded Streaming Media; WTL 目 录 第一章 引言 .......................................................................................1 第二章 系统相关技术概述 ............................................................................... 2 2.1 网络流媒体的特点 ........................................................................................... 3 2.2 嵌入式系统概述 ............................................................................................... 3 2.3 媒体播放器的硬件平台 ................................................................................... 5 2.4 媒体播放器的软件平台 ................................................................................... 8 2.4.1 嵌入式操作系统的概念............................................................................. 8 2.4.2 Windows CE 5.0 操作系统 .............................................................................................. 9 2.5 媒体播放器的开发平台的搭建 ..................................................................... 11 第三章 系统总体设计 ....................................................................................... 14 3.1 系统概述及功能 ............................................................................................... 14 3.1.1 开发背景 ....................................................................................................................................14 3.1.2 总体目标.......................................................................................................................................15 3.1.3 功能需求.......................................................................................................................................16 3.1.4 非功能需求 .................................................................................................................................17 3.2 系统架构和模块划分 ....................................................................................... 18 3.3环境配置 ............................................................................................................ 20 第四章 系统详细设计 ....................................................................................... 21 4.1 系统MVC框架设计 ....................................................................................... 21 4.1.1 系统MVC架构图 ..................................................................................... 22 4.1.2 Model层 ...................................................................................................... 23 4.1.3 View层 ........................................................................................................ 23 4.1.4 Controller层 ................................................................................................ 24 4.2用户界面UI模块设计与实现 ......................................................................... 25 4.2.1 WTL技术介绍............................................................................................ 25 4.2.2 主功能操作界面....................................................................................... 26 4.2.3 具体功能界面........................................................................................... 30 4.3 控制器模块设计 ............................................................................................... 33 4.4 音频播放引擎模块设计 ................................................................................... 38 4.4.1 WINCE下WMP控件说明 ........................................................................ 38 4.4.2 WINCE下实现流媒体播放........................................................................ 39 4.5 数据存储模块设计 ........................................................................................... 41 4.6 网络通信模块设计 ........................................................................................... 43 第五章 系统测试及运行结果 .......................................................... 44 5.1 功能测试 ........................................................................................................... 44 5.2 性能测试 ........................................................................................................... 45 5.3 界面测试 ........................................................................................................... 46 第六章 结束语 ................................................................................. 48 6.1 工作总结 ........................................................................................................... 48 6.2 展望 ................................................................................................................... 49 致谢 ................................................................................................... 50 参考文献............................................................................................ 51 Contents Chapter 1 Introduction.....................................................................1 Chapter 2 System related technologies outline ......................................... 2 2.1 Network streaming media features ................................................................ 3 2.2 Embedded system's outline............................................................................. 3 2.3 The Media player’s hardware platform ..................................................... 5 2.4 The Media player’s SOFTware platform ...................................................... 8 2.4.1 Embedded operating system's concept........................................................... 8 2.4.2 Windows CE 5.0 Operating System ................................................................................... 9 2.5 Estabish the development platform .............................................................. 11 Chapter 3 System overall design .................................................................. 14 3.1 System profiler and function ........................................................................... 14 ................................3.1.1 Development background......................................................................14 3.1.2 Overall objective ........................................................................................................................15 3.1.3 Functional requirements .........................................................................................................16 3.1.4 Non-functional requirements................................................................................................17 3.2 System architecture and module division....................................................... 18 3.3 Environment disposition .................................................................................. 20 Chapter 4 System detail design .................................................................... 21 4.1 System MVC framework design ..................................................................... 21 4.1.1 MVC framework and structural graph ......................................................... 22 4.1.2 Model layer .................................................................................................. 23 4.1.3 View layer .................................................................................................... 23 4.1.4 Controller layer ............................................................................................ 24 4.2 Graphic User Interface module design ........................................................... 25 4.2.1Introduction of WTL technology .................................................................. 25 4.2.2 UI of Main function operation ..................................................................... 26 4.2.3 UI of the Concrete function.......................................................................... 30 4.3 Controller module design................................................................................. 33 4.4 Audio player engine module design ................................................................ 38 4.4.1 WMP controls base on WINCE ................................................................... 38 4.4.2 stream medium playing base on WINCE..................................................... 39 4.5 Data storage module design ............................................................................. 41 4.6 Network communication module design ........................................................ 43 44Chapter 5 System testing and the running results .......................... 5.1 Functional test................................................................................................... 44 5.2 Performance test ............................................................................................... 45 5.3 Interface test...................................................................................................... 46 Concluding remarks .................................................... 48Chapter 6 6.1 Summarize......................................................................................................... 48 6.2 Prospects............................................................................................................ 49 Acknowledgement ............................................................................. 50 References ......................................................................................... 51 基于Wince 5.0的嵌入式流媒体播放器开发 第一章 引言 近年来,网络音乐,特别是网络电台(网络广播)的风行,受到越来越多的大众追棒。网络音乐以其及时、海量、灵活、个性化、时尚的风格,吸引了越来越多消费者的加入,同时也引起了众多商家的关注。英国广播收听率评定机构RAJAR公司数据显示英国有近1/4人口通过互联网收听无线电广播。媒体听众研究公司Bridge Ratings预计在2007年年底,每三个美国人之中就有一位收听网络广播。2009年全球的潜在WIFI收音机用户将超过1000万。 收音机作为接收广播的工具,经过漫长的发展过程,由单波段发展到多波段,由电子管,晶体管发展到集成电路,由机械调谐发展到数字调谐功能等,其技术和品质都有了长足的进步。随着网络广播的飞速发展,这两年更是出现了网络收音机这种跨越全球的信息接收设备。但是,网络收音机的发展尚处于萌芽阶段: (1) 全球的网络收音机开发主要集中在欧美,涉足的厂家有近10多家,但主要流派却只有5个:美国的Roku公司和Slimdevice公司, 英国的Reciva公司,德国的TerraTec公司,澳大利亚的Torian公司。 (2) 在中国大陆,目前网络收音机的发展显得更加的谨小慎微,真正了解网络收音机的人并不多。 ) 目前,网络收音机大多是通过基于PC机上的软件开发来实现的其功能(3 的,也就是说它并不能脱离PC机这种相对比较大的和比较昂贵的设备独立使用。 根据以上特点,本项目把目光投向那些不使用PC或者不愿长时间使用PC的用户,为他们量身定制流媒体播放设备,让用户不必使用PC也可以享受网络音乐带来的快乐。 本项目组针对目前Web 2.0架构特点,设计研发具有独创意义的嵌入式流媒体播放器(亦称为Internet Radio)。Internet Radio是一个可以在家中自由移动、任意摆放的无线流媒体播放器。只要身处Wi-Fi无线网络环境中,Internet Radio的音乐平台让用户不必打开计算机,就能接收全球数千个令人意想不到的各种音乐类型电台,让用户亲临音乐无国界的时代、享受不同风格的音乐。当然,如果没有无线网络,也没有关系,设备也同样提供了有线网络的接口。除了可以 1 基于Wince 5.0的嵌入式流媒体播放器开发 直接透过因特网收听网络广播外,本产品也可以用于播放储存于硬盘中的MP3。另外,本产品还增加了网络数码相框Flick R、好友社区聊天等流行时尚的元素,实现与同类产品的差异化,势必将吸引更多消费者的青睐。 根据目前国内外市场的初步调查和反馈,明显Internet Radio有着十分广泛的用户受众。其产品的适用面广,可以在家庭、旅馆、餐馆、汽车电子、个人手持等多种场合使用,可为家电厂商、连锁运营商、电信运营商等传统服务商大大提高增值服务产品的空间。该产品系中高档网络多媒体电子产品,产品定位于细分市场人群,并可针对亚洲、欧美等不同地区用户进行外观、功能、语言的差异化设计,其良好的发展势头和独特的功能特点,势必能够在未来的2,3年内替代传统PMP、MP3、MP4,在市场上独领风骚。 本论文阐述了基于Windows CE 5.0平台的嵌入式流媒体播放器的软件设计。该软件基于WINCE 5.0平台,通过有线或无线网络与Web Service服务器和流媒体服务器进行交互,集成了电台分类列表浏览、电台搜索、电台点评推荐、电台收藏、流媒体播放、网络相册、好友聊天互动等功能。本人长期参与此项目,负责了包括软件开发平台配置,Internet Radio模块的界面、业务逻辑和流程的设计及实现,主功能界面设计及实现,并负责最后的应用程序调试和整合工作。 本论文的内容如下: 第一章 综述了网络电台及网络收音机的发展现状,提出了本课题的研究内容与意义。 第二章 介绍了本系统的相关技术,包括软件、硬件平台介绍和本系统软件开发平台的构建。 第三章 论述了本系统总体设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,包含系统的概述及功能介绍,系统架构和模块划分。 第四章 详细论述了本系统平台的流媒体播放器的详细设计。具体阐述了Internet Radio程序的UI设计,控制器模块设计,音频播放器设计,数据存储模块设计和网络通信模块设计。 第五章 说明了本系统的测试工作。 第六章 给出了本论文研究成果及不足之处的总结,并对本毕业设计开发的流媒体播放器的发展前景进行了展望。 2 基于Wince 5.0的嵌入式流媒体播放器开发 第二章 系统相关技术概述 2.1 网络流媒体的特点 流媒体是指通过编码器,将电脑里面正在播放的音频或视频数据转换成为可以在Internet上直接传送的格式,而用户登录到流媒体节目的网站时,可以下载到经过编码的音频、视频信息,再通过如Real Player或Win amp等相关软件将其播放出来。流媒体是以流的形式在网络中传输的,其播出效果受网络带宽的影响。 一般多媒体数据下载时,需要下载完毕才能观看,而多媒体流的特点是边下载边播放,不占用客户硬盘空间,但需要有一定的网络带宽支持,如果带宽低于多媒体流需要的带宽,会造成视频和音频数据的停顿。与单纯的下载方式相比,这种对多媒体文件边下载边播放的流式传输方式具有以下优点: (1) 实时传输和实时播放:流化多媒体使得用户可以立即播放音频和视频信号,无须等待文件传输结束,这对获取存储在服务器上的流化音频、视频文件,现场回访音频和视频流都具有十分重要的意义。 (2) 节省存储空间:采用流技术,可以节省客户端的大量存储空间,在客户端只需由播放器对流化音、视频信息进行回放即可。 (3) 信息数据量小:现场流都比原始信息的数据量要小,并且用户不必将所有下载的数据都同时存储在本地存储器上,可以边下载边回放,从而节省了大量的磁盘空间。 从网络发展来看,采用流媒体技术有利于提高网络传输速度,为用户节约大量时间,调动用户上网的积极性。从节目质量看,流媒体技术虽然使视音频信号质量有所下降,但对用户不会造成视听障碍。随着网络的发展,网上信息量越来 [1] 越多,商家可根据不同节目,采用多种传输格式,以满足用户需求。2.2 嵌入式系统概述 本文中要实现的流媒体播放器是一个嵌入式系统。嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁减、适应应用系统、对功能、可靠性、成 3 基于Wince 5.0的嵌入式流媒体播放器开发 [2]本、体积、功耗有严格要求的专用计算机系统。它将操作系统和功能软件集成于计算机系统之中,简单的说就是系统软件与系统硬件一体化,具有软件代码小,高度自动化,响应速度快等特点。特别适用于要求实时性和多任务的应用系统。嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。 嵌入式系统由嵌入式硬件系统和嵌入式软件系统构成。软件系统又包括管理与控制硬件的操作系统和运行于操作系统之上的用户应用软件。其结构如图2-1所示。 图2-1:嵌入式系统构成图 在嵌入式系统中,计算机系统一般作为智能控制部件和用户交互界面加以控制。在这种情况下,用户并不知道(或者不需要知道)嵌入的计算机的存在,系统控制软件一般被固化在嵌入式计算机中,嵌入式计算机一般不需要(或不能)被用户重新编程,通过特殊的输入、输出设备与系统进行交互。 任何嵌入式系统都包括硬件和软件两个方面。硬件包括微处理器、存储器、IO端口和图形控制器等。软件包括操作系统软件和应用软件,应用软件控制着嵌入式系统的运作和行为,而操作系统则为应用程序提供必要的底层支持,它一 [3] 般是通过提供应用编程接口(API)来实现的。但在嵌入式系统开发中它们的区 4 基于Wince 5.0的嵌入式流媒体播放器开发 别又不是绝对明显的,有时嵌入式系统的开发者可能要做操作系统和应用编程两方面的工作。 因为嵌入式系统是面向应用、产品和用户的,所以不可能不研究应用特性就开发出一个如PC般通用的嵌入式系统。在嵌入式系统中,具体的应用将决定对硬件和软件的需求,如芯片、存储器、IO扩展和操作系统、应用程序编制等。和通用计算机不同,嵌入式系统的硬件和软件都必须高效率的设计,量体裁衣,去除冗余,尽量以最小的系统、最低的成本去实现目标功能,这样的产品才具有竞争力。它通常都具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强。 2.3 媒体播放器的硬件平台 mini2440 是一款低价实用的ARM9 开发板,是目前国内性价比最高的一款学习板;它采用Samsung S3C2440 为微处理器,并采用专业稳定的CPU 内核电源芯片和复位芯片来保证系统运行时的稳定性。开发板的外观如图2-2 5 基于Wince 5.0的嵌入式流媒体播放器开发 图2-2: 开发板 MINI2440 开发板硬件资源特性: CPU 处理器 - Samsung S3C2440A,主频400MHz,最高533Mhz SDRAM 内存 - 在板64M SDRAM - 32bit 数据总线 - SDRAM 时钟频率高达100MHz FLASH 存储 - 在板 64M Nand Flash, 掉电非易失 - 在板 2M Nor Flash,掉电非易失,已经安装BIOS 6 基于Wince 5.0的嵌入式流媒体播放器开发 LCD 显示 - 板上集成4 线电阻式触摸屏接口,可以直接连接四线电阻触摸屏 - 支持黑白、4 级灰度、16 级灰度、256 色、4096 色STN 液晶屏,尺寸从3.5 寸到12.1寸,屏幕分辨率可以达到1024x768 象素; - 支持黑白、4 级灰度、16 级灰度、256 色、64K 色、真彩色TFT 液晶屏,尺寸从3.5 寸到12.1 寸,屏幕分辨率可以达到1024x768 象素; - 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 配置为NEC 256K 色240x320/3.5 英寸TFT 真彩液晶屏,带触摸屏; - 板上引出一个12V 电源接口,可以为大尺寸TFT 液晶的12V CCFL 背光模块(Inverting)供电。 接口和资源 - 1 个100M 以太网RJ-45 接口(采用DM9000 网络芯片) - 3 个串行口 - 1 个USB Host - 1 个USB Slave B 型接口 - 1 个SD 卡存储接口 - 1 路立体声音频输出接口,一路麦克风接口; - 1 个2.0mm 间距10 针JTAG 接口 - 4 USER Leds - 6 USER buttons(带引出座) - 1 个PWM 控制蜂鸣器 - 1 个可调电阻,用于AD 模数转换测试 - 1 个I2C 总线AT24C08 芯片,用于I2C 总线测试 - 1 个2.0 mm 间距20pin 摄像头接口 - 板载实时时钟电池 - 电源接口(5V),带电源开关和指示灯 系统时钟源 - 12M 无源晶振 实时时钟 - 内部实时时钟(带后备锂电池) 7 基于Wince 5.0的嵌入式流媒体播放器开发 扩展接口 - 1 个34 pin 2.0mm GPIO 接口 - 1 个40 pin 2.0mm 系统总线接口 操作系统支持 - Linux2.6.29 - WindowsCE.NET 5.0 2.4 媒体播放器的软件平台 2.4.1 嵌入式操作系统的概念 嵌入式系统的应用环境与其它类型的计算机系统有着巨大的不同,随之也带来了对应操作系统的不同要求,从而构成了现代操作系统的一个新的类别:嵌入 [4]式操作系统。 嵌入式操作系统是与应用环境密切相关的。从应用范围角度嵌入式操作系统大致可以分为通用型的嵌入式操作系统合专用型的嵌入式操作系统。比较典型的通用型的商业嵌入式操作系统有Windows CE、VxWorks和从Linux发展出来的嵌入式Linux;专用型的嵌入式操作系统有专门应用于掌上电脑的Palm OS、主要用于移动电话的Symbian等。 从原理上看,嵌入式操作系统仍旧是一种操作系统,因此它具有操作系统的基本功能,包括进程管理与处理器调度、存储管理、设备管理和中断处理等。但是嵌入式操作系统的硬件平台和应用环境与一般操作系统有很大的不同,所以嵌入式操作系统又有不同于一般操作系统的特点。 一般而言,出于对使用环境和整体成本的考虑,嵌入式操作系统的硬件平台有如下特点: (1) 系统资源有限:微处理器(微控制器)指令字长较短;存储空间有限,很多系统的存储空间在1M之内,有的没有外部存储器。 (2) 外部设备多变:系统的输入输出设备以及被控设备千变万化,其种类和复杂性超过一般操作系统的外部设备;比如输入设备可能是键盘鼠标、触摸屏、笔式设备,也可能是速度 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 信号或雷达信号等。 8 基于Wince 5.0的嵌入式流媒体播放器开发 (3) 从应用看,对嵌入式操作系统的要求有如下特点: (4) 占用系统资源要少:不少嵌入式系统本身资源有限。CPU运算速度不快,存储空间不大,不可能允许操作系统占据一大部分的资源。 (5) 实时响应要求严格:特别是在关键领域应用的嵌入式操作系统,比如从事飞机碰撞检测处理的系统,必须达到系统规定的硬实时指标。 (6) 对操作系统可靠性要求高:在关键领域应用的嵌入式操作系统不允许发生任何影响系统可靠性的故障,重新启动系统可能意味着重大事故。 (7) 具有可配制性:由于要求嵌入式操作系统能够应用在各种各样的硬件环境,因此嵌入式操作系统的内部结构同其他操作系统的差别不大,但是实际结构与功能与其他操作系统有着较大的不同。 (8) 小型化:在保证其应用功能的前提下,尽可能减少系统对资源的占用,由此作为出发点设计嵌入式操作系统的内核结构和内核的基本功能。 (9) 可定制性:嵌入式操作系统必须能够提供可配置或者可剪裁的内核功能和其他功能。比如,在处理器调度或者任务调度方面,能够提供除轮转式调度之外如抢占式调度等多种调度策略的选择。在嵌入式操作系统中,根据应用需求的不同,有的系统能够提供各种文件系统供用户选择,有的系统不提供文件以减少系统的开销。 (10)可移植性:考虑到嵌入式应用产品具有更新快的特点,嵌入式操作系统应该能够支持多种国际主流微处理器等硬件平台。 2.4.2 Windows CE 5.0 操作系统 Windows CE 是微软特意为信息设备、移动应用、消费类电子产品、嵌入式应用等非PC领域专门设计的一种压缩的、具有高效的、可升级的操作系统(OS), [5]在外观和使用的感觉上十分接近桌面Windows系统。Windows CE是一个32位嵌入式操作系统,其多线性、多任务、全优先的操作系统环境是专门针对资源有限而设计的。这种模块化设计方式使得系统开发人员和应用开发人员能够为多种多样的产品来定制它,可以选择、组合和配置WinCE的模块和组件来创建用户版的 [6]操作系统。 Microsoft Windows CE 5.0是Windows CE.NET的后续产品,它不仅是一个功 9 基于Wince 5.0的嵌入式流媒体播放器开发 能强劲的实时嵌入式操作系统,而且提供了众多强大工具,允许用户利用它快速开发出下一代的智能化小体积连接设备。借助于完善的操作系统功能和开发工具,windows CE 5.0为开发人员提供了构建、调试和部署基于Windows CE 5.0 [7]的定制设备所需的一切特性。 Windows CE 5.0支持4种微处理器平台以及相关仿真技术: (1) ARM: 支持的处理器包括ARM 720T、ARM 920T、ARM 1020T、Strong ARM、XScale. (2) MIPS:支持的处理器包括MIPS?/32(带浮点运算)、MIPS?/32 (不带浮点运算)、MIPS16、MIPS IV/64(带浮点运算)、MIPS IV/64(不带浮点运算)。 (3) SHx:支持的处理器包括SH-3、SH-3 DSP、SH-4。 (4) X86:支持的处理器包括486、586、Geode、Pentium?/ ?/? /?。 通过提供各种先进技术,Windows CE 5.0 允许开发人员自由、灵活和更加 [8]安全地为智能设备建立连接,并且为用户提供了与众不同的丰富体验。能够让用户获得更出色体验的功能特性包括: (1) 可伸缩的无线技术 (2) 支持.NET的设备服务 (3) .NET Compact Framework1.0 (4) 强大的多媒体能力 ) 最新的Web浏览技术 (5 (6) 最轻松的Windows集成 (7) 实时协作和通信(RTC/SIP) (8) 终端服务 (9) 广泛的多语言支持 (10)具有适应性的可定制用户界面 (11)应用程序和服务 (12)丰富的设备驱动程序 10 基于Wince 5.0的嵌入式流媒体播放器开发 2.5 媒体播放器的开发平台的搭建 在本项目中,基于Windows CE 5.0平台的软件开发工具主要包括Platform Builder 5.0和visual studio 2005。 1、安装Platform Builder 5.0 在微软的官方网站下载Platform Builder 5.0的安装程序(大约有3G左右),安 装PB5需要.NET Framework1.1,如果系统中没有安装此组件,将会出现错误提示。 在PB5的安装光盘中可以找到此组件的安装文件,双击安装完.NET Framework1.1后再安装PB5,由于安装PB 一般需要5-7G 的硬盘空间,在安装之 前要确保磁盘有足够的空间。 2、导入安装BSP 板开发商的光盘中附带有相关的BSP,为了使用相应型号的液晶屏,需要对 BSP 的设置做如下修改: (1) 修改\smdk2440\INC\s2440.h 中LCD_TYPE 的定义,找到如下定义语句: #define LCD_TYPE_N35 1 //适用于NEC3.5 寸屏 #define LCD_TYPE_A70 2 //适用于7 寸屏 #define LCD_TYPE_VGA1024x768 3 //适用于VGA 模块输出,分辨率为1024*768 #define LCD_TYPE LCD_TYPE_N35 把LCD_TYPE 改为相应的型号就可以了 (2) 修改smdk2440\smdk2440.bat 批处理文件(使用“记事本”可以打开) REM - LCD_TYPE for Friendly ARM set BSP_LCD_TYPE_N35=1 set BSP_LCD_TYPE_A70=1 把需要使用的型号定义设置为1 就可以了, 其他为空。 要使用 PB5 编译WINCE 内核映象,需要安装对应目标板的BSP,并进行一些 设置。请按照以下步骤安装BSP: Step1:把光盘/ Windows CE 5.0目录里面的SMDK2440文件夹复制“C:\ WINCE500 \ PLATFORM ”目录下,并去掉只读属性。 Step2:打开“Platform Builder 5.0”,选择“File”菜单下的“Manage Catalog Features”,点“Import按钮”,导入“platform\smdk2440\smdk2440.cec”文件 11 基于Wince 5.0的嵌入式流媒体播放器开发 Step3:在“Catalog”的BSP下,将会自动添加“Samsung SMDK2440:ARMV4M”项,BSP安装完成。 3、安装无线网卡驱动程序 无线网卡驱动程序位于光盘Windows CE 驱动程序模块\无线网卡\文件夹中,它是一个安装文件“VNUWLC5-ARM.msi”。 双击安装文件,安装完毕后打开PB5,会看到Catalog一栏中出现其选项。 4、 编译内核工程 (1) 在C:\WINCE420\PBWorkspaces 目录(如果没有,可以手工创建一个)中创建一个文件夹“mini2440”, 把光盘中Windows CE 5.0 目录下的mini2440.pbxml 文件C:\WINCE420\PBWorkspaces\mini2440 目录,并去掉只读属性。 (2) 在PB 中点File->Open Workspace„,打开刚刚复制的项目文件,注意是“pbxml”结尾的。 (3) 打开后,点Build OS->Sysgen 开始编译,或者点工具栏的图标开始进行编译,该过程比较长。 (4) 编译完毕,就会生成“nk.bin”和“nk.nb0”两个文件,其中nk.bin 是发行版本,nk.nb0 是内存中运行版本, 我们一般使用 nk.bin 。它们位于C:\WINCE500\PBWorkspaces\mini2440\RelDir\smdk2440_ARMV4I_Release 5、导出SDK 我们可以把定制好的内核工程导出为SDK 安装文件,它用来提供给应用开发人员,里面主要包含与定制平台有关的头文件、库、一些文档等内容。应用开发人员可以通过安装SDK在Visual Studio 2005以下简称(VS2005)中开发基于此平台的应用程序。 (1) 首先打开并确定已经编译好工程示例,点Platform->SDK -> New SDK„ (2)跳出“Export SDK Wizard”向导窗口,点“下一步”继续: (3)进入“Product Properties”配置窗口,可以根据实际情况填写配置 (4)进入“Development Language”配置窗口,选择开发语言支持 (5)配置完毕,点“ Finish”按钮结束。 (6) 运行SDK Wizard(Platform->SDK->New SDK),填写必要的信息之后,把支持的开发工具都勾上,完成。下面是配置SDK(选择 12 基于Wince 5.0的嵌入式流媒体播放器开发 Platform->SDK->Configure SDK),要是觉得没有什么好配置的也可以跳过。 (7) 生成SDK。Platform->SDK->Build SDK。一切顺利的话应该可以在当前工程目录的SDK目录下找到打包成.msi文件的SDK安装包。 6、 配置Visual Studio 2005 (1) 双击QQ2440_SDK.msi.exe,先安装生成好的SDK。运行Visual Studio 2005,选择菜单“工具->选项”,打开选项设置对话框,从左边的树型列表中选择“设备工具->设备”,右边的下拉列表框拉到底可以看到“QQ2440”,这就是我们刚刚生成的那个Platform。下面的设备列表里有两项,双击QQ2440,设定传输为DMA传输,再点击“仿真器选项”,在“显示”选项卡里设定好模拟器屏幕尺寸,颜色深度等,全部保存。 (2) 新建一个智能设备项目,向导第2步选择平台的时候用我们的QQ244替换Pocket PC 2003,完成。然后按F5运行程序,不出意外的话模拟器应该就出来了。 7、 使用ActiveSync 与PC 同步通讯(公共) (1)安装ActiveSync,当安装完成后会自动运行 ActiveSync,同时在任务栏出现相应的图标托盘,点“取消”。 2)确认板子里面已经烧写好了我们提供的 WINCE 映象文件,并开机运( 行,系统起来以后,接上USB 电缆,并与PC 连接,如果以前没有安装过这个驱动,计算机会出现“发现新硬件”的提示,这时就要安装CE 用同步USB 驱动。 (3)USB 驱动安装完,开发板已经同PC 连接好了,PC 任务栏的右下角的ActiveSync 也变成了绿色,这说明一切准备就绪。ActiveSync 安装完毕后,在“我的电脑”里会出现一个“移动设备”图标,双击打开它,里面会有名为“Friendly ARM” 的文件夹,这个就是与板同步的文件夹,可以将可执行程序放在这个文件夹中,然后在开发板中运行。 至此,项目的开发平台基本已经配置完毕,现在就可以在VS2005中开始我们项目的开发了。 13 基于Wince 5.0的嵌入式流媒体播放器开发 第三章 系统总体设计 3.1 系统概述及功能 3.1.1 开发背景 互联网的诞生于70年代末,在90年代得到了高速的发展。除了上网人数急剧增加之外,最值得注意的是在互联网这个广阔的平台上开展了各种应用。早期的互联网上仅仅是文件和电子邮件的传送,随着浏览器的出现,多媒体成了网上骄子,文字、图片等构成了丰富的表现形式,随后,更多的媒体形式出现在互联网上,最典型的就是音频和视频。从90年代中期开始,以流媒体形式出现的网上视、音频经历了快速的发展,逐渐地由窄带向宽带转移,提供视、音频内容的站点急剧增加,视听质量有了明显的改进。网络广播即有传统广播电视的灵活生动的表现形式,又有互联网按需获取的交互性,因此,这 [9] 种媒体形式一出现就深受网络用户的欢迎,成为网络上的一颗新星。Dataquest的数据显示,1998年时,已经有2,500互联网广播电台,约有800万观看网上的电视节目,这一数量在1999年时增长到了2,700万。 是什么给广播带来了从所未有的潜力和希望,那就是卫星广播和网络广播的发展。尽管美国的两家卫星广播公司已经为我们描绘出了什么是卫星广播的场景,但是网络广播为我们所描绘的场景更加宏大。实际上,卫星广播已经有了160多个广播频道,但网络广播却有着将近2万个电台,几乎所有通过无线电传播的电台都有着相对应的网络广播,此外网络广播比卫星广播具有信息丰富、音质好、条件易用等特点,所以网络广播更能满足各种各样对广播的选择。 此外,根据现今多媒体终端产品发展现状中,我们可以看出未来在多媒体终端产品中加入对无线网络的支持,将会使多媒体终端的应用更广论文泛。随着互联网内容的高速发展,互联网内容和接入互联网的方式呈现螺旋式发展,内容推动硬件设备性能提升,硬件性能的提升也为更多互联内容的实现奠定基础。在这样的环境下,以手机接入互联网的方式己经不能满足用户的需求,而随着无线宽带网络的普及,集成WiFi、WiMax等无线网络的多媒体终端设备将很好地满足用 14 基于Wince 5.0的嵌入式流媒体播放器开发 户对移动互联网的访问需求。 因而,根据目前国内外市场的初步调查和反馈,Internet Radio有着十分广泛的用户受众。但是,作为网络音乐的终端――流媒体播放器,最直接面向大众的窗口,却显得单一,大部分商家只是提供PC上的流媒体播放器,这就给我们开发此类产品带来了巨大的商机。由于Internet Radio产品的适用面广,可以在家庭、旅馆、餐馆、汽车电子、个人手持终端等多种场合使用,可为家电厂商、连锁运营商、电信运营商等传统服务商大大提高增值服务产品的空间。该产品系中高档网络多媒体电子产品,产品定位于细分市场人群,并可针对亚洲、欧美等不同地区用户进行外观、功能、语言的差异化设计,其良好的发展势头和独特的功能特点,势必能够在未来的2,3年内替代传统PMP、MP3、MP4,在市场上独领风骚。 3.1.2 总体目标 我们要设计的是一款基于wince 5.0 平台的嵌入式流媒体音频播放软件,可以随意浏览电台列表并在线收听服务器上提供的全球流媒体电台,同时还提供了节目信息、音频的同步播放模式。此外,本系统还加入本地MP3播放、网络相册、聊天交友等功能。用户可以将自己喜爱的电台节目加入收藏列表中,还可以对正在收听或正在浏览的电台节目进行投票点评以及将电台信息通过电子邮件发送给好友。系统还记录了用户上一次收听的电台节目,以方便用户快速收听该电台。更提供电台搜索功能,可以按电台名称、所在国家、风格、语言等分类进行模糊搜索。对某些VIP电台进行权限验证,具有数字版权保护的部分功能。总体目标如下: (1) 在wince 平台上实现对HTTP流式传输的各种格式流媒体音频的解析和流畅播放。 (2) 可以通过Web Service实现流媒体音频播放软件与门户系统的互动和信息传递。 (3) 可以通过Web Service 实现好友之间的互动和信息传递 (4) 可以对收听的电台进行评价(顶 / 踩),以及推荐给好友 (5) 可以收听全球的流媒体音频电台,按国家、语言、格式对电台进行分 15 基于Wince 5.0的嵌入式流媒体播放器开发 类显示和搜索。 (6) 实现电台收听排行榜和用户收听偏好设置 (7) 可以播放网络相册,进行照片搜索,动态显示 (8) 可以播放本地的音频文件 (9) 实现系统代码的可维护性和可移植性。 (10) 美观、时尚、易用、人性化的用户界面。 3.1.3 功能需求 从用户的使用角度来看,我们将嵌入式流媒体音频播放软件的功能分为: (一) 基本功能 (1) My Preset:用户预设电台列表。 (2) Free Stations:由服务器维护的免费电台列表,通过网络从服务器中获取。 (3) VIP Stations:由服务器维护的VIP电台列表,通过网络从服务器中获取。可按格式、国家、语言分类,在某个分类下选择特定选项,可以获得该分类选项下的所有电台列表。在列表中点击某个电台,调用播放引擎进行播放。 (4) TOP Stations:由服务器维护的热门电台列表,通过网络从服务器中获取。 (5) Search: 按电台名称、风格、国家、语言等进行模糊搜索。 (6) Favorite:按用户设置的标签显示收藏夹内的电台,通过网络从服务器中获取。 (7) 播放引擎:电台播放、停止,浏览前后节目信息、查看节目详细信息,将节目推荐给好友,对电台加标签,对电台进行点评投票。 (8) 交友功能:充分利用网络,可以查找正在收听或者曾经收听过相同电台的朋友,交流和分享优秀电台。 (9) Local play Info:本地播放音频文件,可控制播放的进度,显示唱片集信息 (10)Local play list: 本地播放列表 (11)Flick R:显示相片,可以上网找照片并显示出来 16 基于Wince 5.0的嵌入式流媒体播放器开发 (12)日历:显示当前系统时间 (13)System Setting:系统设置,主要设置网络(IP),系统的颜色风格 (二) 未来扩展功能 (1) 播客功能:随时随地点播网络上的播客资源。 (2) 与门户系统集成:用户可通过门户系统查找和添加自己喜欢的电台到特定列表中,客户端列表与该列表保持同步。 3.1.4 非功能需求 从功能上讲,应该说本系统是将PC机网络上的成熟应用移植到开发板上,在wince平台上实现流媒体播放,要使产品具备竞争力,必须在性能等方面有胜人之处。这方面的要求如下: (1) 易操作:操作界面结合开发板终端的可操作按键保持简单明了,符合普通人的操作习惯。尽量使得完成功能所需的操作尽量可以通过触摸笔的点击动作完成; (2) 稳定:考虑到网络环境可能不稳定,而且用户可能处于各种可能的移动状态,不能让环境因素影响到程序的运行,不能出现死机或一直等待的状态; (3) 速度流畅:显示快捷,最大限度地减少停滞时间,列表获取和播放界面转换快速。考虑到本软件使用的数据绝大部分是网络音频流数据,较为复杂,在运算和网络传输上都有不小的挑战,如果在WIFI网络状态下播放流畅性很差,肯定不能为市场接受。相反,如果播放过程流畅并且表现突出的话,就可以领先竞争对手; (4) 系统资源消耗低:合理进行资源分配、回收,有效地利用系统资源,禁止死锁现象发生; (5) 兼容性:因为开发板的类型各种各样,比如处理器,尺寸、显示屏解析度、甚至SDK都会有不同,尽量采用较为通用的API和控件,便于不同平台的移植 (6) 安全性:无线通信本身的特点是,既容易让合法用户接入,也容易被潜在的非法用户窃听,因此,安全问题总是同移动通信网络密切相关。必须对系统中的一些重要数据进行加密传输。 17 基于Wince 5.0的嵌入式流媒体播放器开发 3.2 系统架构和模块划分 对于wince嵌入式平台来说,它的硬件资源有限,没有太大的存储空间。而作为多媒体软件的资源—图片,音频,视频等,所占用的空间是巨大的。另一方面,项目的需求中最重要的一条就是我们系统与用户以之间的互动,这样才能改善程序的用户体验。因此,我们设计的多媒体软件无法作为单机版软件独立运行。我们所需要的容量具大的多媒体资源只能通过无线网络从服务器上实时传输到我们的硬件平台上。 另外,由于嵌入式板的硬件设备处理器运算能力有限,为了客户端软件能更加流畅地运行,我们只能采用瘦客户端的方式来设计,即把大量的运算处理逻辑都放在服务器端,客户端只负责最终的数据显示和与用户的交互行为。 服务器方面,考虑到瘦客户端模式加重了服务器的负担,因此采用多台服务器共同工作的方式。通过一台连接服务器统一接入客户端的连接请求,然后利用接入层实现负载均衡,把客户端的处理请求平均分配到多台工作服务器中。所有的工作服务器共享同一个数据库,这样就能做到数据同步。我的工作主要是客户端Internet Radio和社区交友平台相关的软件的开发,服务器及其他功能的实现由于本人为参与,不是本文讨论的重点,这里不再详细展开描述。 我们的客户端软件是建立在开发板硬件设备之上的,采用多控制器MVC经典架构。大体上分为UI模块、控制器模块、音频播放模块、数据存储模块、网络通信模块五个部分。 系统架构如图3 -1所示。 18 基于Wince 5.0的嵌入式流媒体播放器开发 电电电本本主好台台台地地系界Web 友列相收播播相统日面互册表关藏放放设历 Service 动动搜信推列信置 画服 索息荐表息 务 器 UI 网服 络务View模块 通器 MVC 信端Control模块 模模Model模块 块 块 音频播放网络数据数组常量 模块 解析模块 流存储 媒 体 服 务 器 图3-1: 系统架构图 (1) UI模块:负责有关用户界面的相关逻辑。包括图形、文字的显示,按键和触摸屏的事件触发等功能。 (2) 控制器模块:控制UI 的数据显示,按键和触摸屏的事件处理,以及界面的一些特效(动画等)的制作。 (3) 音频播放模块:负责声音的播放,重点是类似流媒体的边下载边播放策略。 (4) 网络通信模块:负责与服务器的通信过程,建立了一套与服务器Web Service连接机制。 (5) XML数据存储模块:负责对访问Web Service得到的数据(以XML格式存储)进行XML解析,得到真正所要的数据用数组存储于内存中,并写入XML文件进行存储。 本系统架构具有特点如下: (1) 基于事件驱动。 19 基于Wince 5.0的嵌入式流媒体播放器开发 (2) 采用多控制器的MVC (3) 采用消息发送机制,由控制器模块负责各模块的协调运行。 (4) 网络通信模块使用无线网络或者有线网络与服务器进行通信。 3.3环境配置 由于网络收音机数据需上网读取,因而需要在有无线网络Wi-Fi或者是有线网络的环境中运行。 20 基于Wince 5.0的嵌入式流媒体播放器开发 第四章 系统详细设计 4.1 系统MVC框架设计 MVC由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许 [10]多交互和界面系统的构成基础。MVC中的模型、视图和控制类如图4-1所示。 图4-1: MVC中的模型、视图、控制类 MVC的优点表现在以下几个方面: (1) 可以为一个模型在运行时同时建立和使用多个视图。变化-传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器 做到行为同步。 (2) 视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换。 (3) 模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。需要做的只是在新平台上对视图和控制器进行新的修改。 (4) 潜在的框架结构。可以基于此模型建立应用程序框架,不仅仅是用在设计界面的设计中。 21 基于Wince 5.0的嵌入式流媒体播放器开发 4.1.1 系统MVC架构图 [12]Microsoft的MFC基础类也遵循了MVC的思想。而本系统是使用WTL创建工程,由于WTL本身是在MFC基础上发展起来,因而本系统也是遵循了MVC的思想,是多个控制器的MVC模式,如图4-2所示。 ControllerView CLocalPlayDlg本地播放信息UI CLocalListDlg 本地播放列表UI CRadioPlayDlgWebServiceModel电台播放信息UI CRadioPlayDlg 电台搜索列表UI CmediaPlayDlg 播放控制器UI CSASDlg 好友聊天UI CMainDlg 主界面动画UI 图4-2 :多个控制器的MVC模式类图 这种模式按照程序模块把界面分成若干个部分,每个部分使用一个控制器来控制。这样做的好处是程序模块划分得很清楚,程序结构更加清晰,也不至于使得一个控制器过于庞大;缺点是程序的类数量更多,控制器之间增加了通信开销。不过由于本系统中各个界面UI所需通信比较少,可以采用MFC 的消息传递机制,倒也没有多大影响。 22 基于Wince 5.0的嵌入式流媒体播放器开发 4.1.2 Model层 模型包含了应用问题的核心数据、逻辑关系和计算功能,它封装了所需的数据,提供了完成问题处理的操作过程。控制器依据I/O的需要调用这些操作过程。模型还为视图获取显示数据而提供了访问其数据的操作。 这种变化-传播机制体现在各个相互依赖部件之间的注册关系上。模型数据和状态的变化会激发这种变化-传播机制,它是模型、视图和控制器之间联系的纽带。 在本系统中,model层主要是解析并缓存从web service 读到的数据,将其暂存在全局的变量中,提供给Controller层。 4.1.3 View层 视图通过显示的形式,把信息转达给用户。不同视图通过不同的显示,来表达模型的数据和状态信息。每个视图有一个更新操作,它可被变化-传播机制所激活。当调用更新操作时,视图获得来自模型的数据值,并用它们来更新显示。 在初始化时,通过与变化-传播机制的注册关系建立起所有视图与模型间的关联。视图与控制器之间保持着一对一的关系,每个视图创建一个相应的控制器。视图提供给控制器处理显示的操作。因此,控制器可以获得主动激发界面更新的能力。 在本系统中,View层主要是系统界面的设计,包含如下图4-3: 好友互动UI主功能界面UI 本地播放列表网络电台列表UI 本地播放信息网络电台信息UI 图4-3: 系统主要UI 23 基于Wince 5.0的嵌入式流媒体播放器开发 4.1.4 Controller层 控制器通过时间触发的方式,接受用户的输入。控制器如何获得事件依赖于界面的运行平台。控制器通过事件处理过程对输入事件进行处理,并为每个输入事件提供了相应的操作服务,把事件转化成对模型或相关视图的激发操作。 如果控制器的行为依赖于模型的状态,则控制器应该在变化-传播机制中进行注册,并提供一个更新操作。这样,可以由模型的变化来改变控制器的行为,如禁止某些操作。 把模型、视图、控制器实行分离,使设计和使用有了很大灵活性。但是,在现实中,视图和控制器的功能通常是紧密地联系在一起的。控制视图工作的输入事件通常都是与视图的构成相关的。在现实界面设计环境中,界面操作事件及其处理都是与界面形式设计紧密关联的。在这种情况下,把视图和控制器分离开,就给分析和设计带了了不方便,并且运行的效率低。 因此,可以把视图和控制器结合起来加以设计和实现。在上面的实现说明中,只要把视图和控制器的类合并生成新的视图类即可。这样,仍然保持着与模型的分离,因此相同的模型仍然可以使用多个视图。这些视图本身已经具备了事件处理能力,仍然可以通过模型对其功能进行控制。本系统中正是使用这样的方式来进行控制的,系统的视图类有如下图4-4: CMainDlgCSASDlgCMainFrm CLocalListDlgCMainViewCRadioListDlg CRadioPlayDlgCLocalPlayDlgCMediaDlg 图 4-4:系统视图类 24 基于Wince 5.0的嵌入式流媒体播放器开发 4.2用户界面UI模块设计与实现 在现今的软件设计中,界面的好坏会将会直接影响软件的质量,一个功能再强大的软件如果界面设计的十分繁琐,丑陋肯定是没有市场的。当然如果只是有一个好的界面,功能上存在不足同样也是不会成功的。所以我认为软件设计的决定性因素是其内在的功能。同样界面设计也是软件是否能成功的致命性因素。以下八个特性是我认为一个良好的用户界面所必须的:清楚、简明、熟悉、易响应、一致、吸引力、高效、宽容。 在网上搜索参考了一些PC机上的网络收音机、网络电视、MID手机、以及苹果的iPhone的界面设计,终于定下了界面风格。 界面设计及一些特效的实现所使用的是WTL技术。 4.2.1 WTL技术介绍 在ATL刚刚出现的时候,开发人员非常快乐,因为我们有了一种编写速度快且代码短的COM组件的方式。但是当我们想要使用的窗口控件的包装类时,快乐很快就结束了。于是MS为了解决我们的困境,提供了非正式不提供技术支持的WTL。 WTL特性如下: (1) 使用C++的强大功能 (2) 通用控件的瘦包装类 (3) 短小但功能齐全的应用程序框架 (去掉了曾很流行的Document-View 架构) (4) 支持打印和打印预览功能 (5) 迁移了MFC中的CPoint, CRect, CSize, CString等类 (6) 新的消息处理宏,最终把消息分离带入了ATL 25 基于Wince 5.0的嵌入式流媒体播放器开发 4.2.2 主功能操作界面 参考iPhone的滑动界面设计出本系统的主界面,截图如下图4-5: 图 4-5: 主界面滑动效果图 、 按钮图片显示(不同状态下) 1 按钮使用的是自画控件,重载WTL的CButton类, 主要在类的DrawItem(LPDRAWITEMSTRUCT lpdis)中使用GDI技术控制位图的显示,参考代码如下: void CODButtonImpl::DrawItem ( LPDRAWITEMSTRUCT lpdis ) { CDCHandle dc = lpdis->hDC;//使用GDI的DC CDC dcMem; dcMem.CreateCompatibleDC ( dc ); dc.SaveDC(); dcMem.SaveDC(); dc.FillSolidRect ( &lpdis->rcItem, RGB(255,0,0) ); dcMem.SelectBitmap ( m_bmp );//m_bmp是按钮在初始化传进来的位图 CSize size; m_bmp.GetSize(size); if ( lpdis->itemState & ODS_SELECTED ) //当按钮被击中是显示 26 基于Wince 5.0的嵌入式流媒体播放器开发 dc.StretchBlt(3,3,m_rect.Size().cx-6,m_rect.Size().cy-6,dcMem,0,0,size.cx,size.cy,S RCCOPY); else//未被击中,则正常显示位图 dc.StretchBlt(0,0,m_rect.Size().cx,m_rect.Size().cy,dcMem,0,0,size.cx,size.cy,SRCC OPY); dcMem.RestoreDC(-1); dc.RestoreDC(-1); } 2、 界面的滑动特效的制作 界面的滑动效果主要是用贴图实现,在对话框背景不停地进行贴图的刷新,贴图位置渐变,由于人眼的识别能力的限制,设定好每秒刷新的帧数高于人眼的识别的帧数,就能看到平滑的效果。 系统控制每秒刷新的次数是采用系统时钟控制,当选择功能按钮改变时,就调用用SetTimer(1,10,NULL),这样就是说每10毫秒就会调用一次OnTimer()方法,重载OnTimer方法,在这个函数里面改变贴图的位置,然后发送WM_PAINT 消息,让界面进行刷新显示,当贴图到达一定得位置之后就调用KillTimer(nID)方法,暂停刷新。流程图如下图4-6: 27 基于Wince 5.0的嵌入式流媒体播放器开发 单击功能按钮 相同与前选定按钮是否相同 不同 SetTimer(1,10 ,NULL) showBmpMove,OnTimer()改变贴图位置 发送WM_PAIN,显否示贴图 是否已经到达指定位置 是 结束 图 4-6: 滑动效果制作流程图 贴图的动态显示为避免闪烁,采用双缓冲显示方法,先在内存中创建一个DC(dcMem),然后把要显示的位图先用临时创建的DC(tmpDc)加载进来,然后用GDI提供的StretchBlt的方法将tmpDc贴入dcMem的指定区域,当所有的位图都贴进dcMem之后,在用StretchBlt的方法将dcMem显示到屏幕的DC上。具体实现的代码如下: CDC dcMem,tmpDc; dcMem.CreateCompatibleDC (dc); tmpDc.CreateCompatibleDC (dc); CBitmap tmp_bk; CBrush brush; 28 基于Wince 5.0的嵌入式流媒体播放器开发 CSize size; tmp_bk.CreateCompatibleBitmap(dc,m_rect.Size().cx,m_rect.Size().cy); //创建位图,注意传入的DC应为屏幕DC,否则颜色将失真 SelectObject(dcMem,tmp_bk); SetStretchBltMode(dcMem,COLORONCOLOR); m_bmpMusic.GetSize(size); tmpDc.SelectBitmap(m_bmpMusic.m_hBitmap); dcMem.StretchBlt(rmusic.left,rmusic.top,rmusic.Width(),rmusic.Height(), tmpDc,0,0,size.cx,size.cy,SRCCOPY); //tmpDc的位图贴入内存DC指定位置 m_bmpFlick.GetSize(size); tmpDc.SelectBitmap(m_bmpFlick); dcMem.StretchBlt(rflick.left,rflick.top,rflick.Width(), rflick.Height(),tmpDc,0,0,size.cx,size.cy,SRCCOPY); m_bmpCalendar.GetSize(size); tmpDc.SelectBitmap(m_bmpCalendar); dcMem.StretchBlt(rcalendar.left,rcalendar.top,rcalendar.Width(), rcalendar.Height(),tmpDc,0,0,size.cx,size.cy,SRCCOPY); m_bmpSetting.GetSize(size); tmpDc.SelectBitmap(m_bmpSetting); dcMem.StretchBlt(rsetting.left,rsetting.top,rsetting.Width(), rsetting.Height(),tmpDc,0,0,size.cx,size.cy,SRCCOPY); m_bmpIradio.GetSize(size); tmpDc.SelectBitmap(m_bmpIradio); dcMem.StretchBlt(riradio.left,riradio.top,riradio.Width(), riradio.Height(),tmpDc,0,0,size.cx,size.cy,SRCCOPY); m_bmpBK.GetSize(size); SetStretchBltMode(dc,COLORONCOLOR); dc.BitBlt(0, 0, m_rect.Width(), m_rect.Height(), dcMem, 0, 0,SRCCOPY ); //将内存dc的内容显示到屏幕上 29 基于Wince 5.0的嵌入式流媒体播放器开发 4.2.3 具体功能界面 具体功能界面参照下面的界面框架,如图4-7 图4-7: 具体功能界面框架参照图 本系统的具体功能界面设计包括本地播放列表,本地播放唱片信息,网络电台列表,网络电台具体信息,好友互动,网络相册,电台收藏推荐等界面设计,这里不一一列出,就以Internet Radio 的电台播放信息界面作为范例进行UI设计说明。Internet radio 的电台播放信息界面设计如图4-8: 30 基于Wince 5.0的嵌入式流媒体播放器开发 回主功能界面 Playing sas List Iradio推荐电台收听好友Station nameStation1Station2Station3Station picStation4music Station infoFink Calender 顶踩添加收藏推荐给好友 searchTop 100输入文本 Setting >>音量||<<> 图 4-8: 电台信息界面设计图 1、 界面布局设计 具体功能界面总共分为四个部分,左边为各个大功能的选择按钮模块,点击可分别进入相对应的具体功能模块,右边分为3个模块,最上面是状态栏主要用于主功能界面与具体功能界面的切换以及一些系统时间等一些状态信息,这个部分对于各个大功能来说是不变的,中间较大的模块用于具体的功能界面显示,当大功能改变时主要改变的是这个部分的界面内容(例如Internet radio的列表搜索界面、电台信息显示界面等)。最下方是媒体流播放控制器,控制上一首/电台、下一首/电台、播放/暂停、音量,这个部分界面在网络电台和本地播放时界面是不改变的,公用的。这样的界面设计功能层次清楚、简明、、一致、富有吸引力、更为高效、友好。 2、 界面使用的技术 (1) 使用窗口分割技术 自从 Windows 95 的资源管理器以其文件系统的双窗格视图粉墨登场以来,分割条窗口就成了一个流行的 UI 元素。MFC 中有一个复杂而强大的分割条窗口类,但是学会如何使用它却有点困难,而且它关联于文档/视图框架。在本系统 31 基于Wince 5.0的嵌入式流媒体播放器开发 里,我们使用的 WTL 的分隔条窗口,与 MFC 的分割条窗口相比没那么复杂。尽 管 WTL 分隔条的实现没有 MFC 的特性丰富,但它却极其易于使用和扩展。 在头文件 atlsplit.h 中包括了所有的 WTL 分割条窗口类。共有三个类: CSplitterImpl、CSplitterWindowImpl 和 CSplitterWindowT。在本系统里,窗 口分割的实现在控制器--视图类CMainFrame中,首先在创建3个分割条变量 CHorSplitterWindow m_topSplit; CSplitterWindow m_mainSplit; CHorSplitterWindow m_viewSplit; 然后在类的OnCreate()方法里面初始化分割条,并将各个分割模块的内容填 入分割区域,主要代码如下: m_mainSplit.Create (*this, rcDefault, NULL,0);//初始化分割条 m_topSplit.Create (m_mainSplit, rcDefault, NULL,0); // 初始化分割条 m_viewSplit.Create (m_topSplit, rcDefault, NULL,0); //初始化分割条 m_selDlg.Create (m_mainSplit); //将对应的内容写入窗口的分割区域 m_selDlg.ShowWindow(SW_SHOWNORMAL); //显示UI内容 m_topDlg.Create (m_topSplit,rcDefault); m_topDlg.ShowWindow(SW_SHOWNORMAL); m_mediaDlg.Create (m_viewSplit,rcDefault); m_mediaDlg.ShowWindow(SW_SHOWNORMAL); CMainView::getObject()->myCreate(m_viewSplit); m_viewSplit.SetSplitterPanes(*CMainView::getObject(),m_mediaDlg); //设置分割区域内容 m_topSplit.SetSplitterPanes(m_topDlg,m_viewSplit); m_mainSplit.SetSplitterPanes(m_selDlg,m_topSplit); m_hWndClient = m_mainSplit; UpdateLayout(); //更新窗口 m_mainSplit.SetSplitterPos(180); //设置分割区域大小 m_mainSplit.SetSplitterExtendedStyle(SPLIT_NONINTERACTIVE); //设置分割条不动 m_topSplit.SetSplitterPos(40); m_topSplit.SetSplitterExtendedStyle(SPLIT_NONINTERACTIVE); 32 基于Wince 5.0的嵌入式流媒体播放器开发 m_viewSplit.SetSplitterPos(300); m_viewSplit.SetSplitterExtendedStyle(SPLIT_PROPORTIONAL); (2) 使用tab control和tab view 使用Tab Control来控制具体功能页面的切换,重写CTabView用于控制Tab Control。具体切换的实现由控制器来实现,位于CMainView这个视图类中。 (3) 界面事件的传递 使用WTL的自带的消息处理宏,在控制器可获取界面相应事件的消息。 4.3 控制器模块设计 本系统采用的是多控制器的MVC模式,充当控制器角色的是各个UI所对应的视 -9所示 图类。系统界面事件处理的时序图如下图4 UIModelControllarWeb Service Even Message 对应处理 参数 参数 结果数据 数据 显示数据 图4-9: UI事件处理响应时序图 33 基于Wince 5.0的嵌入式流媒体播放器开发 视图类所做的操作主要包括以下几个方面: 1、 获取界面相关事件消息,对界面事件进行处理 通过使用视图类与界面的UI的ID号对应,借用MFC的消息传递机制,视图 类便可获取得到界面的UI的事件对应的消息。 视图类的创建应该继承WTL的GUI基础类(如CAppStdDialogImpl)在类里 面加上如下语句便可与对应的UI建立连接: enum { IDD = IDD_RADIO_PLAYDLG }; 这行代码将视图类与ID号为IDD_RADIO_PLAYDLG的UI相对应,使视图类成为 UI的控制器。 界面事件的捕获是在消息映射中设置,其参考代码如下: BEGIN_MSG_MAP(CRadioPlayDlg) MSG_WM_INITDIALOG(OnInitDialog) MESSAGE_HANDLER(WM_DESTROY, OnDestroy) MESSAGE_HANDLER(UM_CHANGESTATION_MSG,OnChangeStation) COMMAND_HANDLER(IDC_STATE_COMB, CBN_SELCHANGE, OnCbnSelchangeStateComb) COMMAND_HANDLER(IDC_SEARCH_BTN, BN_CLICKED, OnBnClickedSearchBtn) COMMAND_HANDLER(IDC_UP_BTN, BN_CLICKED, OnBnClickedUpBtn) COMMAND_HANDLER(IDC_DOWN_BTN, BN_CLICKED, OnBnClickedDownBtn) COMMAND_HANDLER(IDC_FAVORITE_BTN, BN_CLICKED, OnBnClickedFavoriteBtn) COMMAND_HANDLER(IDC_RECOMMEND_BTN, BN_CLICKED, OnBnClickedRecommendBtn) NOTIFY_HANDLER(IDC_PEOPLE_TAB, TCN_SELCHANGE, OnTcnSelchangePeopleTab) CHAIN_MSG_MAP(CCustomDraw) REFLECT_NOTIFICATIONS() END_MSG_MAP() 使用WTL的消息宏,捕获相关的消息,并进行处理,处理主要是在对应的函数如 OnBnClickedRecommendBtn里面。 34 基于Wince 5.0的嵌入式流媒体播放器开发 2、 读取Model层的相关数据,控制界面数据显示 视图类访问Model层,得到相关数据后,要在界面上显示出来,其方法是在视图类中建立控件的对象,使用DDX_CONTROL或者是控件的Attach方法将其与特定的ID的界面UI控件相对应,然后通过在视图类里面根据具体的操作流程进行逻辑设计或运算,得到结果后将数据读入控件类的对象中,以改变对象的数据,从而控制对应UI的结果数据显示。这里主要以对Internet radio 里面的列表分类及搜索UI操作流程及界面数据显示的控制为例进行说明,其分类搜索显示流程控制设计如图4-10: 单击搜索按钮 TOP 100判断分类搜 索类型 其他 判断输入框读入TOP 是否空是100列表 否 显示top 以输入框搜索VIP100电台内容为关电台的索名称到键字搜索引列表listBox相应电台 显示搜索显示电台 到的电台索引名称 名称到到 ListBoxListBox 结束 图 4-10: 分类搜索显示流程控制图 35 基于Wince 5.0的嵌入式流媒体播放器开发 根据此流程图,进行控制器类的设计,主要可分成以下几个函数: OnBnClickedSearchBtn:读入界面的相关输入数据(主要是分类类型及搜索的关键字) DoSearch:主要是进行输入数据的判断(分类类型判断,输入框内容是否为空判断),调用相对应的函数 InitVIPList:根据分类类型搜索对应的VIP电台索引的列表 ShowList:将得到的数据写入到界面的控件上,显示出来 3、 各个控制器之间参数传递(使用消息传递机制) 各个UI进行界面跳转时的通信、或者参数传递都是由其对应的控制器(视图类)进行通信和参数传递来实现。控制器之间的通信主要使用WTL的用户自定义消息传递机制。具体的实现方式如下: (1) 定义消息类型 #define UM_CHANGEVIEW_MSG WM_USER+108 //用户自定义消息 #define UM_CHANGESTATION_MSG WM_USER+109 //用户自定义消息 (2) 在要进行通信的地方使用SendMessage函数向要目标视图类发送消息。 (3) 在接受消息的视图类的消息映射那边获取消息,并定义相对应的事件处理函数接受传递的参数,并做相应处理。 在本系统中的Internet Radio模块中,视图类的通信流程如下图4-11所示 36 基于Wince 5.0的嵌入式流媒体播放器开发 单击播放页面单击电台列表的搜索按钮选项选定收听CradioPlayDlgCRadioListDlg视图类事件处相应事件处理理 发送消息 和对应的 参数 CmainFrm接受 消息并做消息 处理 CmainView改变 当前活动的UI 并传递相关参 数 对列表 对播放 判断是对那个 窗口UI的操作 CRadioPlayDlgCRadioListDlg 读入相关电台获取相关电台 信息数据列表 图4-11 :Internet Radio 视图类通信流程图 显示得到的电显示电台的相 台列表到UI关信息到UI 37 基于Wince 5.0的嵌入式流媒体播放器开发 4.4 音频播放引擎模块设计 4.4.1 WINCE下WMP控件说明 在过去的10年里,移动技术已经取得了令人难以置信的进步和成就。应用Windows CE系统的移动设备也在应用和编程方面变得更加灵活和方便。最新的Windows CE设备中加入了Windows Media Player 10 Mobile,它提供了和PC上的WMP控件一样强大的功能。在本系统里面我们使用的是Windows Media Player 9 Mobile. 下面我们简单介绍WMP的一些实现技术 WMP SDK提供了很多的接口,但不是所有都能应用到wince平台上来。下面表单列出可用的一些并进行解释: 表4-1 :WMP接口说明 接口 描述 WMP对象模型的根接口。你可以由此获取其IWMPCore 他接口的指针并且通过它访问其他空间的 基本特性。 允许一个应用程序访问Windows Media IWMPControls Player控件;如它的播放,停止和暂停按钮。 IWMPError 提供错误信息。 把由Windows Media Player控件产生的事IWMPEvents 件提供给一个可以反馈的嵌入式程序。 IWMPMedia,管理媒体项的属性。 IWMPMediaCollection 设置和获取Windows Media Player所使用IWMPNetwork 的网络连接 控制Windows Media Player空间的用户接IWMPPlayer 口的行为。 IWMPPlaylist, IWMPPlaylistArray, 播放列表操作。 IWMPPlaylistCollection 设置或者获取Windows Media Player的设IWMPSettings 置。 38 基于Wince 5.0的嵌入式流媒体播放器开发 4.4.2 WINCE下实现流媒体播放 1、 使用WMP控件,需要先在UI上先插入WMP控件,然后在后台初始化,参考代码 如下: CComPtr spConnectionContainer; CComWMPEventDispatch *pEventListener = NULL; CComPtr spEventListener; //initialize WMP window AtlAxWinInit(); g_wmplayer = GetDlgItem(IDC_OCX); hr = g_wmplayer.QueryControl(&(g_spWMPPlayer)); CHR(hr); CBR(g_wmplayer.m_hWnd != NULL); g_wmplayer.MoveWindow(0,0,0,0); hr = CComWMPEventDispatch::CreateInstance(&pEventListener); CHR(hr); spEventListener = pEventListener; hr = g_spWMPPlayer->QueryInterface(&spConnectionContainer); CHR(hr); // See if OCX supports the IWMPEvents interface hr = spConnectionContainer->FindConnectionPoint(__uuidof(IWMPEvents), &(g_spConnectionPoint)); if (FAILED(hr)) { // If not, try the _WMPOCXEvents interface, which will use IDispatch hr = spConnectionContainer->FindConnectionPoint(__uuidof(_WMPOCXEvents), &(g_spConnectionPoint)); } hr = g_spConnectionPoint->Advise(spEventListener, &(g_dwAdviseCookie)); CHR(hr); Error: return 0; 39 基于Wince 5.0的嵌入式流媒体播放器开发 2、 使用WMP控件播放网络相关电台的流媒体,相关代码如下 CComPtr spWMPControls; g_spWMPPlayer->get_controls(& spWMPControls);//得到WMP控件 WCHAR * lpszWURLin; WCHAR lpszWURLout[200]; lpszWURLin = strStation.URL.AllocSysString(); if (GetStationURL(lpszWURLin, lpszWURLout)) { HRESULT hr=S_OK; hr=g_spWMPPlayer->put_URL(lpszWURLout);//设置网络媒体流的地址 hr=spWMPControls->play();//播放网络媒体流 if(g_playingStaInfo.ID!=_T("")) { g_LastStationInfo = g_playingStaInfo; } g_playingStaInfo = strStation; //更新当前播放流 g_bPlaying = TRUE; } 3、 停止播放媒体流的相关代码如下: CComPtr spWMPControls; g_spWMPPlayer->get_controls(& spWMPControls);//得到WMP控件 spWMPControls->stop(); 40 基于Wince 5.0的嵌入式流媒体播放器开发 4.5 数据存储模块设计 在此模块中,先将访问web service 得到数据存储在用指针指向的一个临时内存区域,然后判断得到的数据类型,在根据得到的数据进行相应的处理流程图如图4-12: 访问Web Service 得到字符串str 为-99判断Str为空 其他情况 设置错误设置错误对数据进类型为其类型为服行xml解他用户已务器连接析登录不成功 存入全局 变量的数 组中供控 制器使用 设置错误 标记为成 功 结束 图4-12 :数据临时存储流程图 对需要传给界面的临时数据使用全局的数组和变量存储,而对另外一些需要永久保存的数据,则是将其存入XML文件中,供下次用户需要时使用。 xml解析是使用网上下载的Markup 10定义的xml解析工具类,相关的xml数据的解析参考代码如下: 41 基于Wince 5.0的嵌入式流媒体播放器开发 //网络电台数据的解析与存储 CMarkup xml; CString mcdStrTemp; StationInfo staInfoTemp; CString str = strDoc; if (TRUE == xml.SetDoc(strDoc)) { xml.FindElem(); // Favorite element is root xml.IntoElem(); // inside Favorite int index =0; if (xml.FindElem(_T("totalpage"))) { mcdStrTemp = xml.GetData(); _bstr_t t = mcdStrTemp; char* pchar = (char*)t; g_iTotalPage = atoi(pchar); } while (xml.FindElem(_T("item"))) { xml.IntoElem(); xml.FindElem(_T("name")); mcdStrTemp = xml.GetData(); staInfoTemp.Name = mcdStrTemp; xml.FindElem(_T("country")); mcdStrTemp = xml.GetData(); staInfoTemp.Country = mcdStrTemp; xml.FindElem(_T("language")); mcdStrTemp = xml.GetData(); staInfoTemp.Language = mcdStrTemp; } } Model层的相关代码位于Global.h和Global.cpp文件中,任何需要使用全局数据的视图类,只要包含其头文件Global.h ,就可以进行此数据的访问了。 42 基于Wince 5.0的嵌入式流媒体播放器开发 4.6 网络通信模块设计 VS2005提供了方便的访问Web Service 的机制,在工程的Solution那边右击选择Add Web Reference,在弹出窗口那边输入Web Service的网址,设置好文件名,点击确定就会自动生成一个访问Web service的接口类文件并包含了网络传输的HTTP、SOAP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 和接口返回数据的初步xml解析。 初始化web service 服务接口相关代码如下 CIRadioWebService * g_pWebService; // webService 对象指针 CoInitializeEx(NULL, COINIT_MULTITHREADED); g_pWebService = NULL; g_pWebService = new CIRadioWebService(); // 代理对象 调用web service接口,要注意参数使用正确,在本项目里面相关代码如下: hr = g_pWebService->GetFreeStationList(g_strUserID.GetBuffer(0), g_strIpAddr.GetBuffer(0), g_strMacAddr.GetBuffer(0), nPage, nPageSize,&strRev); &strRev访问得到的经过xml初步解析的数据 在界面切换到其他主功能时要注意退出webService,相关代码如下: if (g_pWebService != NULL) { delete g_pWebService; g_pWebService = NULL; } CoUninitialize(); 在本系统中只有Internet Radio 功能模块需要使用到此部分的网络通信协议,初始化和退出web service的操作是写在点击IRadio功能按钮和切换到其他按钮的事件中。 43 基于Wince 5.0的嵌入式流媒体播放器开发 第五章 系统测试及运行结果 随着软件规模的不断扩大,软件设计的复杂程度不断提高,软件开发中出现错误或缺陷的机会越来越多。同时,市场对软件质量重要性的认识逐渐增强。所以,软件测试在软件项目实施过程中的重要性日益突出。 测试类型有:功能测试,性能测试,界面测试。 5.1 功能测试 功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能, [12]不需测试软件产品的内部结构和处理过程。对于人机交互的部分的测试就相对比较麻烦一点。在本系统中,由于涉及到用户的手动操作,以及在界面上的实际显示效果,使用自动测试是比较不方便的。因此我们对于这部分的测试仍然采 [13]用传统的人工测试为主。由于这部分是直接与用户打交道的,因此如果出了问题用户第一眼就能发现,所以这部分的测试相当重要。 在本系统中我们主要对以下功能进行测试: 1、 电台列表浏览功能 (1) 能否方便地按国家、语言、风格进行分类浏览 (2) 能否方便地按国家、语言、风格以及电台名称进行节目搜索 (3) 能否正常翻页 (4) 能否正确添加节目到收藏夹 (5) 能否正常浏览节目收藏夹 2、 好友互动功能 (6) 能否正常发送消息给好友 (7) 能够正常接收消息 3、 音频播放功能 (1) 检测播放文件过程是否正常。 (2) 电台信息和电台音频能否正常同步显示和播放 (3) 播放对按键反应速度的影响 44 基于Wince 5.0的嵌入式流媒体播放器开发 (4) 切换播放内容对下载速度的影响 (5) 切换播放内容对按键反应速度的影响 (6) 能否正常调节音量 (7) 能否暂停/继续播放 (8) 能否在播放时进行搜索 (9) 能否在播放时对节目进行点评和推荐给好友 这部分的测试工作全部采用黑盒测试,由我们自己手动进行测试,经测试上述功能都能正常实现。限于篇幅,这里仅列举出了有代表性的功能测试条目,就不再进行详细介绍了。 5.2 性能测试 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来 [14]对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。 在本系统中,我们主要是针对不同网络状态下,系统访问Web Service 取得数据的时间和播放电台的延时及连贯情况进行测试。主要的测试数据如下: 表5-1 :web service访问性能测试表 网络状态 访问次数 平均延时(ms) Wifi 无线网络 5 725 校内网有线连接 5 400 宽带连接 5 300 从最终的测试结果可以看出整体网络传输速度是相差不大的,性能比较稳定,在有线宽带连接的状态下访问速度最快。 在对播放电台的延时和连贯性测试过程中,我们选取了国内外不同电台进行测试,发现这个环节与网络状况有着较大的关系,由于采用的是WMP控件自带 45 基于Wince 5.0的嵌入式流媒体播放器开发 缓冲器来下载播放,当网络状态比较不好时,断续比较严重,考虑今后采用双缓冲来播放媒体流。 本章主要介绍了本应用软件的测试方案。由于整个项目比较复杂,需要测试的地方很多。本章并没有一一介绍,只列举了两个比较有代表性的测试加以说明:功能测试和网络连接性能测试。通过这些测试,发现了系统设计的一些不足,并及时加以改正和优化,充分说明了测试的重要性。同时,我们在这个项目中尝试了一些自动化测试方案,并取得了初步成功,大大提高了项目开发的效率。 5.3 界面测试 界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。 将系统移植到硬件平台上运行主要代表界面运行结果如下: 图5-1: 主功能界面 46 基于Wince 5.0的嵌入式流媒体播放器开发 图5-2 :Internet Radio 播放界面 图5-3:Internet Radio 列表界面 由于时间关系,界面的美化工作还在进行中,以上截图仅为初步的框架,并未加入具体的按钮贴图,窗口颜色背景等。 47 基于Wince 5.0的嵌入式流媒体播放器开发 第六章 结束语 6.1 工作总结 本文针对多媒体终端系统的应用需求,完成了基于WinCE平台的流媒体播放器的软件设计。本流媒体播放器系统基于Samsung S3C2440处理器,以WindowsCE5.0作为操作系统。Windows CE 5.0已经成功移植到本项目设计的多媒体终端硬件系统上。本文详细阐述了本系统的软硬件平台配置、系统的总体设计和详细设计。文中还介绍了系统镜像定制相关问题、SDK的生成以及VS2005开发工具与硬件平台之间的同步。论文最后给出了系统测试方法与结果。 论文的主要成果有以下几点: (1) 对Windows CE嵌入式操作系统的结构、特点等进行深入分析,在此基础上构建Windows CE开发环境,为进一步软件开发提供条件。 (2) 对在客户端和应用服务器之间传送的关键数据进行加密,增强了整个系统的安全性; (3) 按照系统功能需求,设计了网络电台上层应用程序,实现了分类搜索、实时显示、实时播放等功能需求。 (4) 利用WTL技术实现界面的动画效果以及自画控件,美化界面 (5) 应用MVC模式,简化了整个系统逻辑,降低了各个模块之间的耦合度,极大地方便了程序的修改和维护; (6) 采用WTL的消息传送机制实现各个视图类之间的通信,传参; 当然,系统仍然存在着一些缺点和不完善的地方: (1) UI部分贴图动画效果不是很好,虽然使用了双缓冲绘图技术,但在硬件平台上仍会感觉到一些延迟,而且占用的CPU使用率过高,今后需要对绘图逻辑进行改进; (2) 使用WMP控件进行网络流媒体的实时播放,并未设置缓冲,容易照成媒体播放断断续续,今后需要对音频播放器做进一步的优化。 (3) 界面的风格虽然已经定下,但美化工作能需进一步完善,主要是贴图的半透明效果制作。 48 基于Wince 5.0的嵌入式流媒体播放器开发 6.2 展望 网络收音机和传统收音机的巨大区别也就是网络收音机所能带给我们的那些优势: (1) 跨地域性,网络电台来自于全球各个国家和地区 (2) 数字传送,没有电波干扰。音质已经逼近CD,超越了DAB数字广播,音乐类的大多是128Kbps,新闻类的为32Kbps (3) 内容种类繁多,使得收听者的选择性呈爆炸性增长 (4) 可以通过显示屏了解到正在播出的歌曲名和演唱者的名字、电台信息等 很多电台没有广告 (5) 各种语言的节目应有尽有 未来的网络收音机走向就像现在的FM广播收音机一样,走得更远,它会出现在你的手机里,会出现在你的汽车上,会在你的卧室和厨房中充当娱乐的主角。这就是广播和收音机的重生~ 而本设计基于ARM的嵌入式技术,通过软硬件等三层结构,实现了一个嵌入式网络收音机系统。该系统克服了PC机形式的网络收音机的诸多缺点,是一个极具创新思维的设计。随着网络技术和嵌入式技术的高速发展,该设计将具有良好的市场应用前景和科研价值。 49 基于Wince 5.0的嵌入式流媒体播放器开发 致谢语 经过5个多月的忙碌和工作,本次毕业设计已经接近尾声,在这里首先要感谢我的指导老师---老师和老师。曾老师和林老师平日里工作繁多,但在整个毕业设计过程中都给予了我们悉心的指导和监督。在每周末召开的周例会上,曾老师和林老师都会根据我们的工作进度提出各种创意和建设性意见,为我们不断完善项目提供了极大的帮助。 其次要感谢陈清松、蔡剑等工程师给予我们的技术支持,感谢江向民师兄、吴阳冰师兄、符静师兄、林金鹏师兄的帮助,我们在同一课题中非常融洽地合作了5个月的时间,在一起发现问题、分析问题和解决问题,大家良好的协作精神使得该项目在众多困难下能够顺利进行。 同时还要感谢和我一起做毕业设计的吴福城同学,他在本次设计中勤奋工作,承担了Web Service服务器的开发工作,与他愉快的合作和讨论保证了整个毕业设计能够顺利按时完成。 然后还要感谢大学四年来所有的老师,为我们打下了专业基础;感谢所有的同学们和朋友们,正是因为有了你们的支持和鼓励,我的大学生活才充满了激情和活力。 最后要特别感谢的是我的父母,是你们站在我的身后,默默地给予精神与物质上的支持,你们无私的爱和鼓励始终是我前进的动力,让我有勇气去面对学习和生活中的任何困难。 50 基于Wince 5.0的嵌入式流媒体播放器开发 参考文献 [1] 高成伟. 移动多媒体技术[M]. 北京:清华大学出版社,2006. [2] 吕京建,肖海桥. 面向二十一世纪的嵌入式系统综述[J]. 电子质量, 2001,(8): 10-13. [3] 周立功. ARM嵌入式系统基础教程(第2版)[M]. 北京:北京航空航天大学出版社 2008. [4] 李佑军.嵌入式系统综述[J]. 现代电子技术, 2003, (6): 92-93 [5] 周毓林,宁杨,陆贵强 等. Windows CE.net内核定制及应用开发[M]. 北京:电子工业出版社,2004. [6] 许菊芳,Windows CE的体系结构与特征[J]. 微电脑世界,1998,(47): 50-51 [7] Windows CE 5.0platform Builder online Help.Microso [8] 汪兵.Windows CE 嵌入式高级编程及其实例详解[M]. 水利水电出版社 2008 [9] 安昌延. 广播电视宽带网络技术[M]. 中国广播电视出版社,2003 [10] 万建成、卢雷 编著. 软件体系结构的原理、组成与应用[M]. 科学出版社,2002. [11] 王艳平,张铮. Windows程序设计[M]. 人民邮电出版社, 2008. [12] Michael Juntao Yuan, Kevin Sharp. Developing scalable series 40 applications M]. Beijing: China Machine Press, 2006. [ [13] 佩腾(Patton,R.)著,张小松 等译. 软件测试(原 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 第2版)[M]. 机械工业出版 社,2006. [14] 于涌. 软件性能测试与Load Runner实战[M]. 人民邮电出版社,2008 51
本文档为【基于Wince 5&#46;0的嵌入式流媒体播放器开发 --Internet Radio 客户端设计与实现---毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_353097
暂无简介~
格式:doc
大小:294KB
软件:Word
页数:67
分类:生活休闲
上传时间:2018-09-17
浏览量:18