当前位置:文档之家› 小巧多媒体播放器设计制作-毕业论文

小巧多媒体播放器设计制作-毕业论文

摘要

空间位置服务(Location Based Service,lbs)基于位置的服务,它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在地理信息系统(外语缩写:GIS、外语全称:Geographic InformationSystem)平台的支持下,为用户提供相应服务的一种增值业务。

基于位置的服务,是指通过电信移动运营商的无线电通讯网络或外部定位方式,获取移动终端用户的位置信息,在GIS平台的支持下,为用户提供相应服务的一种增值业务[1]。

它包括两层含义:首先是确定移动设备或用户所在的地理位置;其次是提供与位置相关的各类信息服务。意指与定位相关的各类服务系统,简称"定位服务",另外一种叫法为MPS-M obile P osition S ervices,也称为"移动定位服务"系统。[2]如找到手机用户的当前地理位置,然后在上海市6340平方公里范围内寻找手机用户当前位置处1公里范围内的宾馆、影院、图书馆、加油站等的名称和地址。所以说LBS就是要借助互联网或无线网络,在固定用户或移动用户之间,完成定位和服务两大功能。

关键词:位置信息;lbs;地理信息系统(GIS)

Abstract

Based on the location of the service,it is through radio communication network of mobile telecommunication operators(such as GSM network,CDMA network)or external positioning way(such as GPS)to get the mobile terminal user location information (geographical coordinates and geodetic coordinate),in geographic information systems (English abbreviation:GIS,English name:Geographic informationsystem)platform support, for users provide a value-added service to the appropriate service.

Based on the location of the service,is refers to through the mobile telecommunications operator's radio communication network or an external positioning to obtain location information of a mobile terminal user,under the support of GIS platform,for the user to provide a value-added service of the corresponding service.

It includes two meanings:first,to determine the location of the mobile device or user; secondly,to provide all kinds of information services related to location.Means and location related to the various services of the system,referred to as"location based services",another moniker for the MPS mobile position services,also known as mobile location service system.

[2]such as find the current location of mobile phone users,and then in Shanghai6340square kilometers within the scope of looking for the current position of the mobile phone users located within the range of1km from hotel,cinema,library,gas station,such as the name and address of the.So LBS is to use the Internet or wireless networks,fixed between the user or mobile users,to complete the two functions of positioning and service.

Key Words:position information;lbs;G eographic I nformation S ystem

目录

1绪论 (1)

1.1课题背景 (1)

1.1.1LBS的发展历史 (1)

1.1.2LBS载体介绍 (2)

1.1.3LBS国内现状 (7)

1.2课题主要内容 (8)

1.3研究课题的目的 (9)

2媒体控制接口与混音器编程 (9)

2.1Windows多媒体体系结构 (9)

2.2Windows多媒体设计思想 (11)

2.3媒体控制接口编程 (11)

2.3.1媒体控制接口MCI (11)

2.3.2MCI设备与时间格式 (11)

2.3.3MCI函数与命令 (12)

2.3.4MCI接口方式 (15)

2.4混音器编程 (17)

2.4.1混音器服务的控制类型 (18)

2.4.2混音器的函数 (19)

3系统总体设计 (21)

3.1需求分析 (21)

3.1.1功能需求 (21)

3.1.2界面要求 (22)

3.1.3开发平台和开发工具 (22)

3.2系统分析 (22)

3.2.1用例分析 (22)

3.2.2对象分析 (22)

3.2.3功能分析 (24)

3.3界面设计 (25)

3.4关键功能设计 (25)

3.4.1媒体播放类设计 (25)

3.4.2音量控制类设计 (27)

4系统实现 (27)

4.1系统开发平台 (27)

4.2设计对话框 (28)

4.3实现媒体播放类 (30)

4.4实现音量控制类 (33)

4.5界面实现 (34)

4.5.1实现播放器背景 (34)

4.5.2创建异型按钮 (35)

4.5.3创建位图按钮 (36)

4.5.4实现隐藏窗口 (37)

4.5.5实现播放进度条控制 (37)

4.5.6实现音量控制 (37)

4.5.7实现选择文件列表 (38)

4.5.8实现对话框的移动 (38)

4.5.9实现控件颜色的修改 (39)

4.6系统运行 (39)

5结论 (40)

参考文献 (41)

致谢 (42)

1绪论

1.1课题背景

1.1.1LBS的发展历史

LBS的概念虽然提出的时间不长,但其发展已经有相当长的一段历史。LBS首先从美国发展起来,起源于以军事应用为目的所部署的全球定位系统(Global Positioning System,GPS),随后在测绘和车辆跟踪定位等领域开始应用。当GPS民用化以后,产生了以定位为核心功能的大量应用,直到20世纪90年代后期,LBS及其所涉及的技术才得到广泛的重视和应用。

从另外一个角度来看,LBS起源于紧急呼叫服务。在20世纪70年代,美国颁布了911服务规范。基本的911业务(Basic911)要求美国联邦通信委员会(FCC)定义的移动和固定运营商实现一种关系国家和生命安全的紧急处理业务。和我国的110/120等紧急号码一样,该服务规范要求电信运营商在紧急情况下,可以跟踪到呼叫911号码的电话的所在地。在有线时代,这一要求实现起来相对来说容易一些。随着无线通信技术的发展,美国联邦通信委员会(FCC)于1996年公布了E911(Emergency-911)的定位需求,要求在2001年10月1日前,各种无线蜂窝网络系统必须能提供精度在125m内的定位服务,而且满足此定位精度的概率不能低于67%,并且在2001年以后,提供更高的定位精度和三维位置信息,这实际就是位置服务的雏形。

随后,在定位技术和通信技术发展的双重推动下,西欧以及东亚等国家相继推出了各具特色的商用位置服务。美国的Sprint和Verizon Wireless、加拿大的Bell Mobility、日本的NTT DoCoMo 和KDDI、韩国的SKT和KTF相继推出了各自的LBS服务。世界许多国家都以法律的形式颁布了对移动位置服务的要求。

时至2009年3月,基于用户地理位置信息的手机社交服务网站Foursquare在美国上线,短时间内Foursquare注册用户规模便超过100万,到2011年3月则达到了750万。其用户规模发展态势超过了当年的微博服务网站Twitter,Foursquare已跃然成为移动互联网业界、媒体、投资者重点关注的焦点,并掀起了一股Foursquare模式的模仿热潮。美国本土涌现出了Loopt、Bright Kite、Yelp、Where、Gowalla和Booyah等LBS社交网络服务商。Google、Apple、Facebook、Twitter等更具竞争力的领先企业也加入到LBS市场的角逐之中。可以说Foursquare掀起了LBS

市场的新一轮竞争,这种全新的基于位置的社交服务体验给LBS市场带来了新的商机,也影响和改变了用户的工作和生活方式。

在我国,武汉大学李德仁院士早在2002年就提出开展空间信息与移动通信集成应用的研究,推动了我国LBS应用发展。在短短10年间,LBS技术研究与应用在我国得到迅速发展。

我国的LBS商业应用始于2001年中国移动首次开通的移动梦网品牌下的位置服务。2003年,中国联通又推出了“定位之星”业务。用户在使用这项服务时,只要在手机上输入出发地和目的地,

就可以查到开车路线;如果用语音导航,还能得到实时提示,该项业务还能够实现5~50m的连续、精确定位,用户可以在较快的速度下体验下载地图和导航类的复杂服务。2006年初,中国移动在北京、天津、辽宁、湖北4个省市进行了“手机地图”业务的试点运行,为广大手机用户提供显示、动态缩放、动态漫游跳转、全图、索引图、比例尺、城市切换以及各种查询等位置服务。

2006年,互联网地图的出现加速了我国LBS产业的发展。众多地图厂商、软件厂商相继开发了一系列在线的LBS终端软件产品。此后,伴随着无线技术和硬件设施得到完善,LBS行业在国内迎来一个爆发增长期。艾媒市场咨询研究数据显示,我国LBS服务个人应用市场2008年市场规模为3.35亿元,2009年突增为6.44亿元,2010年达到9.98亿元,同比增长135%。同时,在Web2.0浪潮的冲击下,受Foursquare模式的启发,国内也涌现出了诸多新兴的LBS服务提供商,他们专注于基于手机的LBS服务,利用LBS手机软件或Web站点向用户提供个性化的LBS服务。虽然国内LBS市场在高速发展,但是LBS个人应用领域的市场发展还没有进入理想状态。

LBS的发展非常迅速,其发展过程主要有以下4个特点。

(1)从被动式到主动式。早期的LBS可称为被动式,即终端用户发起一个服务请求,服务提供商再向用户传送服务结果。这种模式是基于快照查询,简单但不灵活。主动式的LBS基于连续查询处理方法,能不断更新服务内容,因而更为灵活。

(2)从单用户到交叉用户。在早期阶段,服务请求者的位置信息仅限于为该用户提供服务,而没有其他用途。而在新的LBS应用中,服务请求者的位置信息还将被用于为其他用户提供查询服务,位置信息实现了用户之间的交叉服务。

(3)从单目标到多目标。在早期阶段,用户的电子地图中仅可显示单个目标的位置和轨迹,但随着应用需求发展,现有LBS系统已经可以同时显示和跟踪多个目标对象。

(4)从面向内容到面向应用。“面向内容”是指需要借助于其他应用程序向用户发送服务内容,例如短信等。“面向应用”则强调利用专有的应用程序呈现LBS服务,且这些程序往往可以自动安装或者移除相关组件。

1.1.2LBS应用领域

位置信息服务是近年来被十分看好的业务,已成为目前应用与研究的热点。无论是公众用户还是行业用户,对于获得位置及其相关服务都有着广泛的需求。在全球移动通信业务用户数排名中,位置信息服务用户数仅次于话音业务位居第二,高于电子邮件、移动电子商务和移动银行等增值业务。移动互联网的发展、智能手机的普及以及社交网站的流行,使位置信息服务也成为最受开发者关注的API之一,相关应用领域也随之不断丰富。

位置信息服务得到广泛应用的主要原因有3个方面。

1)定位手段的多样性。除广泛使用的GPS系统,基于手机或基于通信网络的无线定位技术也得到广泛应用。

2)通信手段的广泛性。基于GSM、GPRS、CDMA等网络的SMS、MMS、HTTP都可作为LBS服务器数据交换的方法。此外,众多无线通信专网,以及有线电话、寻呼网、卫星通信等均可

成为LBS的通信手段。

3)用户终端的多样性。与通信手段相对应GPS车载硬件、手机、PDA等均可成为LBS的用户终端。由于手机终端的灵活性、方便性以及普及性,手机作为LBS系统的终端具有很高的实用价值。

面向公众的位置信息服务

位置信息服务的巨大价值在于通过移动和固定网络发送基于位置的信息与服务,使这种服务应用到任何人、任何位置、任何时间和任何设备。对于个人用户来说,位置信息服务可用于个人的紧急救援、老人及小孩的定位报管、旅游安全的自主定位、查找周围信息,以及亲友跟踪定位、游艇定位、移动气象和移动黄页等。用户如果在陌生区域迷了路,可以通过手机查询详细的步行或乘车方案;如果用户要去一家陌生的饭店参加一个宴会,只要查询相关的位置信息,手机用户可以轻松获得饭店的位置、到达的途径和乘车费用等信息;家庭主妇则可以通过手机接收附近超市每日的折扣商品信息;用户可通过手机获得当前距离用户最近的火车、飞机等售票点位置,以及各个类别的售票班次、价格、时间等信息。

车辆导航

车辆导航是位置信息服务最为广泛的应用领域之一。在提供位置信息服务之前,车辆一般都是使用专用的GPS设备来导航。这种专门的定位系统的优点是定位精度高,可达到10~20m,但是缺点就是造价比较贵,而且在建筑物遮挡或山洞隧道等地方无法正常工作。随着城市基础设施的现代化以及定位技术的成熟,用户可以通过位置信息服务进一步增强车辆导航定位能力。

旅游

自驾旅游是很多私家车车主的兴趣爱好,很多人希望可以在出门之前就规划好自驾旅游的路线,同时能够了解到更多的关于景点介绍等信息。为了满足这部分用户的需求,位置信息服务通过两方面丰富了用户的信息需求:一方面是对于普通的兴趣点进行搜索,用户可以利用“周边旅游景点信息”功能来查找某个兴趣点附近的旅游景点信息;另一方面,对于某个属于“旅游景点”类型的兴趣点,系统提供了丰富的介绍信息供用户查阅,同时给用户提供该旅游景点的“攻略”。

社交娱乐

人们热议的Foursquare等网络应用服务,可以被称为基于位置的社交网络服务(Location Based Social Networking Service)。它是LBS在“社交娱乐”领域的应用分支。基于位置的社交网络核心是LBS,通过整合移动互联网和互联网的无缝网络服务,帮助用户寻找朋友位置和关联信息,同时激励用户分享位置等信息内容。位置服务为用户信息增加了新的标记维度,基于位置的社交网络通过时间序列、行为轨迹和地理未知的信息标记组合,帮助用户与外部世界创建更加广泛和密切的联系,增强社交网络与地理位置的关联性。例如,谷歌地图提供的定位、查询服务就是一种典型

的LBS社交娱乐服务。用户通过该软件可以得知自己所处的地理位置,查询感兴趣的餐馆、娱乐场所,在互联网上共享自己的位置信息供好友查找。用户可以在所处位置“签到”,与好友分享和地理位置相关的吃喝玩乐攻略,并同步到Twitter、Facebook等社交网站。基于位置的微博可记录下用户当前位置上发生的事情、发布一些信息,甚至抒发一下感情或看法,并把这些及时地发布出去,其他移动用户查看手机地图,能分享到这些信息。生活分类搜索功能还可以给用户提供尽可能多的生活资讯,用户可以通过生活分类搜索来查找商家、商品和租房等各种分类信息。

面向企业的位置信息服务

位置信息服务对于企业而言也有着广泛的应用前景。位置信息服务不仅可以帮助企业在内部进行管理评估、业务核算、成本核算,还可以帮助企业在产业协同交易过程中,开展采购、仓储、供应、物流以及风险评估和产能的重组分配。

企业管理

位置信息服务在企业管理方面主要体现在人员管理、产品采购以及业务管理等方面。例如,日本的KDDI公司就推出了面向企业用户的GPS MAP系统。它是一种先进的、具有高准确定位能力的定位信息管理系统,可用于对销售人员和其他公司职员的行动进行精确定位。基于位置信息的全国采购,可以真实地显示供应商位置,通过选择物美价廉的供应商,从而降低进货成本;通过合理规划物流线路,可以降低物流成本;同时,在上下游协同交易时,通过真实地显示企业位置、开户银行位置、仓储位置及物流线路,可以降低交易风险;另外,在电子地图平台上展示企业位置、开户行位置和仓储位置等,有助于银行对中小企业进行合理的商业信用评估,从而帮助企业获得商业贷款,降低经营风险。

位置信息服务还可以帮助企业进行位置分析,选择好的店面地址,进行人流量统计等业务管理,帮助企业降低成本和经营风险,从而制定有效的业务策略。基于位置的企业推广,使企业掌握周边的信息流,从而更快地作出反应,制定出更有效的推广策略,增加企业效益。

市场营销

位置信息服务也可用于企业的市场营销。一种有效的广告营销模式就是将企业地理位置与企业信息对接,例如,企业网站与地理位置链接,以文字和地理位置为条件,搜索符合条件的企业及其网站,查看该企业发布的最新信息,或用户在浏览地图的过程中能自动抓取到企业发布的信息,当用户对某个信息感兴趣,便可以单击进入相应的网站查看。结合位置服务,企业能够掌握各种营销机遇,包括客户信息平台、口碑传播平台、产品促销平台、体验营销平台、忠诚客户平台和事件营销平台等。此外,随着近几年团购服务的火爆,“团购+LBS+开放平台”将成为未来一种全新的应用趋势。

物流管理

物流管理是位置信息服务应用前景最为广阔的市场。一方面,货运行业业务覆盖地域广、车辆多,需要位置服务信息的用户多,要求数据共享的程度高。另一方面,现代物流监控不仅要确定物体的位置,同时还要保障货物运输最优安排、准确及时运送,要求时刻跟踪货物的位置和状态,信息量大,网络压力也大。通过LBS平台,可为企业提供物流实时监控、配送路线优化以及车辆运行监视等服务。

面向社会的位置信息服务

智能交通

LBS最为典型的应用在智能交通领域方面,如智能公交和智能出租车。智能公交是在定位服务的基础上,将各种应用添加到一个大的系统平台之上。例如,公交调度监控管理系统可实时根据定位信息生成最优化的行车计划,调度车辆和管理车辆,也可根据预先设置好的各种数据库中的行车状况,向车辆发出调度指令,如加速、慢行、绕道或发车等。韩国fegsK电信就在所有机型上实现了“巴士告知”服务,用户可以选择离自己最近的公共汽车站,还可以知道驶向这里的最近一班车离位置有多远、多长时间后到达、在哪一站、还剩几站等有关公共汽车位置的信息。

应急救援

移动的不确定性给人们的安全带来了一定的威胁,随着活动范围的扩大,这种威胁也越来越大。因此,危险情况下的紧急救援显得尤为重要。遇到紧急情况时,位置信息服务可及时有效地提供求救人员的位置,以便于救援人员及时进行救助。只要用户的手机支持移动定位业务,用户在紧急时刻就可以拨打紧急救援电话,如中国的110、日本的411,美国的911电话。移动通信网络在将该紧急呼叫发送到救援中心的同时,会启动相应的移动定位流程,将用户的位置信息一起传送给救援中心。救援中心在收到了位置和呼救信息后,就可以根据具体的情况,快速高效地开展救援活动,大大提高了救援成功的几率。

LGT是韩国第一家推出移动定位服务的移动运营商。2002年,LGT第一个以GPS One技术推出紧急救援服务,在当时韩国诱拐儿童及绑架妇女案件增多的背景下,其紧急救援服务深受用户青睐。2004年初,韩国LGT推出一款名为“阿拉丁”的手机,按下快捷键就可以通过移动网向事先存储的对象发送用户所处的准确位置,并同时拨通电话。

韩国SKT在2002年正式推出名为“NATEGPS”的下一代LBS服务。此后陆续推出了移动安全服务、i-Kids等服务。i-Kids利用GPS定位技术和SK电讯的移动网络来确认孩子当前的位置和活动路径,一旦当孩子的活动超出设置的范围时,就会自动发出报警短信。同时,i-Kids还提供了放心区域位置自动通报、活动路径追踪和位置自动显示等,便于家长了解儿童安全状况的服务。

社会治安

位置信息服务也可用于社会治安方面。利用位置信息服务功能,公安机关可对怀疑人员进行实时跟踪,以加强社会治安。例如对犯罪嫌疑人进行定位,为公安机关迅速抓获罪犯提供有力的情报。面向国防军事的位置信息服务

随着无线互联技术和移动定位技术的不断发展,将位置信息服务技术应用于军事,为作战指挥提供实时、精确的信息服务是军事作战领域的一大趋势。位置信息服务的军事应用可覆盖全军指挥控制、武器平台、训练值勤、综合保障和新型武器研制等多个领域,特别是在作战指挥中,可实现对部队行动监控、机动载体导航以及辅助精确打击等。

战场位置信息服务不仅能为军队用户提供实时、精确的定位信息,同时也能实现对战场环境和态势信息的感知、融合、分发和处理,提升军队的联合作战能力,对于提高部队的指挥控制能力、快速反应能力,以及多兵种协同作战指挥和作战指挥的一体化具有十分重要的意义。

作战指挥

对于绝大多数军兵种,位置信息服务都有着非常巨大的应用发展前景,如我方的车辆定位、指挥所定位和机动部队定位等。同样,我们也要大力发展通过对敌方信息源的分析从而实现对敌方相关目标的定位技术。例如,一旦掌握了敌方的通信频率,我们就可以对其移动指挥所或者其他移动目标进行准确的定位打击。

作战指挥对战场位置信息服务有如下需求。

(1)机动载体导航

部队装备的机动能力对于作战行动而言十分重要。在军事行动中,飞机、车辆、舰艇以及其他机动装备都需要在作战范围内保持经常性的机动能力。部队和装备的机动,一方面需要实时了解战场环境,如地形、地貌、道路等,另一方面也需要能实时了解自己所处位置、目标点位置和行动轨迹,提供对最佳路径的辅助制定等。

(2)位置报告与共享

在作战过程中,部队不仅需要知道自身所在的位置,同时也要能获取友军和敌军的位置及动向。因此,需要能随时将自己的位置迅速报告给指挥部和友邻部队,特别是在出现紧急情况和获取到重要战场情况信息时,能快速将位置信息向上报告,快速获得支援火力。除此之外,当发现新的环境信息和态势信息(如桥梁通行状况、敌工事等),也需要能立即将其发送给指挥部,提供信息共享。

(3)部队行动监控

在作战过程中,上级指挥部门需要了解下属部队的实时位置情况,以便开展指挥调度。可以根据实际情况,以连或者排的编制配备位置信息服务终端,同时在指挥所配备位置信息服务指挥终端。在指挥终端内设置需要实时显示的部队,终端利用定位功能和通信功能,实时将所在位置信息传送到指挥终端,在指挥所实时显示下属所有个人终端的位置情况,即可实现对部队的移动监控。

(4)战场情况分析

战场情况随着时间而动态变化。特别是战争期间,武器的破坏能力大,战场情况瞬息万变,如

不能及时掌握战场环境的变化,将严重影响到精确指挥和部队行动。因此,对于战役筹划、作战样式确定、作战计划制定和战术研究等,都需要充分认知战场情况,充分了解战场态势,包括战场环境、敌情、我情等,对其进行综合分析判断,为指挥决策提供依据。

后勤保障

军事上的后勤保障类似于商业的物流管理。可将位置信息服务系统用于军事后勤保障中的作战物资实时跟踪,使作战物资从采购、包装、装卸、搬运、储存、配送,直到消耗的物流过程实现可视化管理,达到快速、精确、可靠、安全的军事后勤保障目标。

随着3G高速无线网络的迅速推广,利用高精度的定位技术开发出更加丰富多彩的、能为用户生活带来便利的位置信息服务业务,可以丰富3G网络中的增值业务,进一步推动位置信息服务在各行业领域的应用。

1.1.3LBS发展现状

1、国外LBS发展现状

美国Sprint PCS和Verizon分别在2001年10月和2001年12月推出了基于GPSone 技术的定位业务。韩国和日本的移动定位业务发展也十分迅速。2001年4月,日本知名的保安公司ECO M成功推出了第1个具备GPSone技术、能实现追踪功能的设备,这一高精度安全和保卫服务能在任何情况下准确定位呼叫个人、物体或车辆的位置。2001年12月,日本的KDD I推出第1个商业化位置服务。韩国的KTF于2002年2月利用GPSone技术成为韩国首家在全国范围内通过移动通信网络向用户提供商用移动定位业务的公司。加拿大的Bell移动公司在LBS业务领域一直是市场的排头兵,在2003年12月,Bell移动的MyFinder业务已占尽市场先机,率先推出了基于位置的娱乐、信息、求助等服务。Bell移动还不断推陈出新,2004年9月,Bell移动发布全球首款基于GPS 的移动游戏Swordfish。

2、国内LBS发展现状

我国由于经济的快速发展,LBS市场潜力巨大。目前手机用户已经达到了几亿的数量。从2001年起,国内一些移动通信企业推出了位置服务。2001年5月,北京移动用户基于移动梦网卡推出位置服务,中国联通于2003年7月推出了定位之星业务。之后,在湖北、浙江、天津、黑龙江等省市陆续开展了LBS业务。LBS业务在我国已经发展了将近十年,现在正处于市场成长阶段,发展呈现良好的增长势头。

与发达国家相比,中国的LBS业务市场起步比较晚,但中国有一个巨大的LBS用户群,拥有广阔的市场前景。近年来,LBS在技术上日臻成熟。LBS通过Internet或SIG

把GIS功能延伸到最终用户的桌面、PDA、移动电话和车辆自主导航等方面,从而使LBS灵活地发挥其独特功能。国内的LBS市场已经热的发烫,2010年初,拉手网、玩转四方、街旁等创业公司纷纷涌现,网易、腾讯、新浪等门户公司也纷纷投入到LBS 的研发中,甚至中国移动等传统通信厂商也开始试水LBS。在投资方面,同众多模仿国外成功的产品一样,也能拿到可观的投资。

3、国内LBS产业发展中出现的问题

首先,我国LBS产业应用领域广,涉及行业多,缺少清晰的主管部门,没有强有力的的行业管理,没有全局性的综合政策主持,没有全国性的总体规划与配套的政策法规措施,国家和个人的信息安全存在管理漏洞,发展的宏观环境。

其次缺少同意的LBS行业标准,目前LBS所需的地理信息数据不少事小作坊生产,生产者没有资质,缺乏同意的技术标准支持,生产的数据质量低、格式不统一,软件平台互不兼容,重复建设严重。

还有我LBS产业没有建立产业联盟,产业链各个环节没有进行分工协作,没有分清研究开发、生产制造、系统集成、信息服务、市场营销等各自在产业链中的扮演的角色。市场运作存在片面性,只重视行业应用,忽视个人市场以及青少年市场,市场宣传力度不够,拿不出成熟产品,市场卖点不清晰。

1.2课题主要内容

本系统制作了一个小巧的多媒体播放器,能够播放主流的多媒体影音文件。由于MFC中没有用于多媒体编程的类,而使用MCI命令与函数进行多媒体编程都要设置很多参数,使用不便。因此本系统采取自己创建用于媒体播放的类,封装要用到的MCI 的方法和函数,隐藏所有MCI命令参数,仅留简单的操作接口,从而简化MCI编程方式,便于重用和访问。音量控制也采取创建可以复用的类,将Audio Mixer中的打开、关闭音频设备、控制音量等函数封装起来,简化使用,也便于以后重用。其中使用了以下关键技术:

(1)MCI主要函数与命令的使用方法;

(2)MCI命令字符串的接口方式;

(3)混音器编程;

(4)异型按钮和位图按钮的实现;

(5)在系统托盘中添加程序图标。

1.3研究课题的意义

以中小型企业为具体实例,通过对比方法对LBS在国内和国外的发展状况进行分析,并单独分析LBS技术在国内中小型企业中的发展现状以及发展前景。另一方面,通过对消费者分析,挖掘出消费者在使用LBS过程中的心理状态的变化,并从消费者角度剖析LBS的使用价值和发展前景。全文通过不同角度进行对LBS进行分析比较,多层次地进行深度研究,并最终根据国内中小型企业的得出相应的LBS模式,以期为LBS 的发展提供一个可行思路。

2媒体控制接口与混音器编程

2.1Windows多媒体体系结构

Windows操作系统从Windows95版本以后具备多媒体操作系统的基本特性,能够提供多媒体核心和管理接口,支持即查即用(Plug and Play,PnP),在GUI操作界面、系统性能、软硬件管理方面满足多媒体技术需求。

Windows具有如下的多媒体特征[3]:

(1)提供对音频、视频和图像的压缩服务,具备开放的软件接口;

(2)内置Video for Windows运行版,Windows内置运行时,无需任何多余的硬件就

可以对视频数据类型进行操作;可以在Windows环境中直接播放或剪辑数字视频;

(3)增强的MIDI支持;

(4)可控制视频设备,用户按“帧”对视频进行停止、开始、暂停等操作。

Windows的多媒体体系具有模块化的层次结构,如图1.1所示[2]。多媒体应用程序使用媒体控制接口(Media Control Interface,MCI)规范发送命令和数据。MCI指令包含命令和数据类型信息。MCI指令组成的MCI数据流传送给Windows的多媒体系统库MMSYSTEM.DLL,并由它进行解释执行。

音频服务将声音集成到应用程序中,包括播放波形数据文件的高级播放功能和控制播放压缩声音的低级功能。这些功能包括基本的音频处理功能,并通过MMSYSTEM.DLL实现。应用程序调用MMSYSTEM.DLL中的音频函数便可以播放或者录制音频数据。

音频压缩管理服务由ACM提供,支持音频数据的录制或者播放过程中的压缩与解压缩。ACM能在把音频数据传送给设备驱动程序之前对其进行解码或者编码,并提供

明确的压缩、解压缩和过滤音频数据的功能。

Windows 的MIDI 功能使应用程序具备以下能力[3]:

(1)直接存取未做任何处理的MIDI 数据;

(2)对MIDI 消息添加时间标记;

(3)利用缓冲区传送或者接收具有时间标记的MIDI 数据。

Windows 还能增强数字视频显示:

(1)对压缩的视频进行解压缩;

(2)控制播放。

Windows 的多媒体视频功能支持多种不同类型的视频格式或者压缩标准。Windows 的多媒体视频播放方式取决于视频格式的文件头信息。Windows 多媒体的体系结构如图

2.1所示[2]。视频命令与数据音频命令与数据

未压缩数据

压缩数据未压缩数据压缩数据解压数据解压数据图2.1Windows 的多媒体体系结构音频命令和数据被送往合适的驱动程序。未压缩的数据流直接传送给驱动程序,而压缩数据将先传送到音频压缩管理器(ACM )。ACM 将分析数据流,判断其采用的压缩器/解压缩器(Codec ),并对数据流进行解压缩后再传送到驱动程序。视频命令和数据的处理与音频基本相同。

多媒体应用程序

MCI

MMSYSTEM.DL

ICM

视频Codec 显示驱动程序

音频驱动程序ACM 音频Codec

DCI

显示硬件

音频硬件存储

2.2Windows多媒体设计思想

多媒体服务的结构是围绕着可扩展性和设备无关的思想设计的。可扩展性使软件结构可以跟上技术进步,而无需改变软件本身的结构;设备无关使得容易开发出能在提供不同级多媒体支持的、范围广泛的硬件上运行的多媒体应用程序。系统软件的三种不同的设计元素提供了扩展性和设备无关[4]:

(1)翻译层(WINMM),它将应用程序与设备驱动程序分隔开来,并将设备无关码集

中起来。

(2)运行时链接,它允许翻译层链接到所需的驱动程序。

(3)清晰、一致的驱动程序接口,它减少了特殊情况码,并使安装和更新进程更容易。

2.3媒体控制接口编程

2.3.1媒体控制接口MCI

媒体控制接口(Media Control Interface,MCI)是Windows提供的与设备无关的多媒体高层命令接口,可以控制CD声音、视频动画、Wave格式数字声音、MIDI音序器、录像机和激光视盘机等多种设备。它的好处是可以方便地控制绝大多数多媒体设备而不需要知道它们的内部工作状况。可以把MCI理解成设备面板上的一排按键,通过选择不同的按键(发送不同的MCI命令)即可让设备完成各种功能,而不必关心设备的内部实现,它是一种主要实现音频播放的方式[1]。MCI功能强大,是Windows多媒体编程的重要组成部分。MCI由Microsoft提供的MMSYSTEM.h文件定义[5],应在多媒体应用程序的源程序中包含该文件。

2.3.2MCI设备与时间格式

MCI设备可以分为两类:简单设备和复合设备。

(1)简单设备:描述简单设备只需指定MCI设备名,比如CD音频只需指定Caudio.

(2)复合设备:复合设备不仅要说明设备类型,而且还要指定一个设备元素或媒体元素。对大多数复合设备来说,其设备元素是一个源或目标数据文件,其元素名就是相应的文件名。比如要描述数字化波形声音,必须指定其设备名waveaudio,还要说明存储数字化波形声音的全路径及文件名[2]。主要的MCI设备类型如表2.1所示。

表 2.1主要的MCI设备类型

设备描述描述字符串说明

MCI_ALL_DEVICE_ID所有设备

MCI_DEVTYPE_ANIMATION Animation动画设备

MCI_DEVTYPE_CD_AUDIO Cdaudio CD机

MCI_DEVTYPE_DAT Dat数字音频

MCI_DEVTYPE_DIGITAL_VIDEO Digitalvideo数字视频

MCI_DEVTYPE_OTHER Other未定义设备

MCI_DEVTYPE_OVERLAY Overlay重叠视频

MCI_DEVTYPE_SCANNER Scanner扫描仪

MCI_DEVTYPE_SEQUENCER Sequencer MIDI序列器

MCI_DEVTYPE_VCR Vcr合式录像机

MCI_DEVTYPE_VIDEODISC Videodisc激光视盘

MCI_DEVTYPE_WA VEFORM_AUDIO waveaudio Wave音频

在MCI编程中,既可以将设备描述当设备名,也可以将描述字符串当设备名。

MMSYSTEM.h文件定义了一系列时间格式常量,通过MCI_SET命令可以设定MCI 时间格式。常用的MCI时间格式有以下几种,其中轨常用于音频,帧常用于视频[2]。

MCI_FORMAT_FRAMES(帧)MCI_FORMAT_MILLISECONDS(毫秒)

MCI_FORMAT_HMS(小时/分/秒)MCI_FORMAT_MSF(分/秒/帧)

MCI_FORMAT_SMPTE_24(SMPTE24帧)MCI_FORMAT_SMPTE_25(SMPTE25帧)

MCI_FORMAT_SMPTE_30(SMPTE30帧)MCI_FORMAT_TMSF(轨/分/秒/帧) MCI_FORMAT_BYTES(字节)MCI_FORMAT_SAMPLES(样本)

2.3.3MCI函数与命令

应用程序通过向MCI设备发送命令消息或者命令字符串来控制MCI设备。MCI命令可以分为如下的四类[6]。

(1)系统命令:直接由MCI解释并由系统处理,不传送到MCI设备。

(2)通用命令:所有的MCI设备都支持。

(3)可选命令:MCI设备可以选用。

(4)专用命令:针对某类专门的MCI设备或集合。

主要的MCI命令如表2.2所示。

表 2.2MCI命令列表"

MCI_CAPTURE抓取当前帧并存入指定文件,仅用于数字视频MCI_CLOSE关闭设备

MCI_CONFIGURE弹出配置对话框,仅用于数字视频

MCI_COPY拷贝数据至剪贴板

MCI_CUE延时播放或录音

MCI_CUT删除数据

MCI_ESCAPE仅用于激光视频

MCI_FREEZE将显示定格

MCI_DELETE删除数据

MCI_GETDEVCAPS获取设备信息

MCI_INDEX当前屏幕显示与否,仅用于VCR设备

MCI_INFO获取字符串信息

MCI_LIST获取输入设备数量,支持数字视频和VCR设备MCI_LOAD装入一个文件

MCI_MARK取消或做一个记号,与MCI_SEEK配套

MCI_MONITOR为数字视频指定报告设备

MCI_OPEN打开设备

MCI_PASTE粘帖数据

MCI_PAUSE暂停当前动作

MCI_PLAY播放

MCI_PUT设置源、目的和边框矩形

MCI_QUALITY定义设备缺省质量

MCI_RECORD开始录制

MCI_RESERVE分配硬盘空间

MCI_RESTORE拷贝一个bmp文件至帧缓冲

MCI_RESUME使一个暂停设备重新启动

MCI_SAVE保存数据

MCI_SEEK更改媒体位置

MCI_SET设置设备信息

MCI_SETAUDIO设置音量

MCI_SETTIMECODE启用或取消VCR设备的时间码

MCI_SETTUNER设置VCR设备频道

MCI_SETVIDEO设置video参数

MCI_SIGNAL在工作区上设置指定空间

MCI_STATUS获取设备信息

MCI_STEP使播放设备跳帧

MCI_STOP停止播放

MCI_SYSINFO返回MCI设备信息

MCI_UNDO取消操作

MCI_UNFREEZE使用MCI_UNFREEZE的视频缓冲区恢复运动

MCI_UPDATE更新显示区域

MCI_WHERE获取设备裁减矩形

MCI_WINDOW指定图形设备窗口和窗口特性

其中比较常用的指令有MCI_OPEN、MCI_CLOSE、MCI_PLAY、MCI_STOP、MCI_PAUSE、MCI_STATUS等等。

MCI命令都可以带两个标志命令来控制命令的执行方式,即“wait”和“notify”。它们在命令消息和命令字符串接口中的形式和意义如表2.3所示。

表 2.3MCI标志命令

命令消息命令字符串功能

MCI_WAIT wait通知MCI设备等,命令执行完成后将控制权还给应用程序

MCI_NOTIFY notify通知MCI设备等,立刻将控制权交给应用程序,但当命令执行完后,

向应用程序发送MM_MCINOTIFY消息

所有的MCI函数名都以mci为前缀。MCI函数也分为命令消息函数和命令字符串函数两类,对应MCI命令消息和命令字符串接口方式,如表2.4所示。

表 2.4MCI函数

类型函数名功能

mciSendCommand发送命令消息

命令消息接口函数mciGetDeviceID获取MCI设备的ID

mciSetYieldProc设定一个回调函数,在结束带wait标志的命令时调用mciGetYieldProc获取当前的回调函数

命令字符串接口函数mciSendString发送命令字符串

公用函数mciGetErrorString获取当前MCI错误的字符串描述

2.3.4MCI接口方式

2.3.4.1MCI命令消息接口方式

利用消息和数据结构来给多媒体设备发送命令并接收设备传来的信息。这种方式用函数mciSendCommand来发送命令消息,命令消息带有数据结构作为操作参数。接口函数主要有mciSendCommand,mciGetDeviceID和mciGetErrorString[7]。函数定义如下:MCIERROR mciSendCommand(

MCIDEVICEID wDevice,//设备ID

UINT uMsg,//命令消息

DWORD fdwCommand,//命令消息标志

DWORD dwParam);//命令消息使用的结构参数地址使用任何一个MCI设备之前都应先用MCI_OPEN打开它,要指定相应的MCI_OPEN_PARMS结构,打开时将自动创建一个设备标识号。若打开成功,可由wDeviceID取得该设备标识号,后续的MCI命令将使用该值。如果mciSendCommand调用成功,则返回的MCIERROR值为0;否则表示设备驱动出错,mciGetErrorString函数可以获取错误信息。

MCI还提供一个特殊设备标识号MCI_ALL_DEVICE_ID,表示当前所有已打开的MCI设备[7]。MCI_OPEN_PARMS结构定义如下。

Typedef struct

{

DWORD dwCallback;//回调窗口句柄

MCIDEVICEID wDeviceID;//设备打开成功,返回的设备号

LPCSTR lpstrDeviceType;//设备类型

LPCSTR lpstrElementName;//复合设备的设备元素,通常为文件名

LPCSTR lpstrAlias;//指定的设备别名

}MCI_OPEN_PARMS;

MCI_OPEN命令的消息标志及其说明如表2.5所示。

表 2.5MCI_OPEN命令的消息标志及其说明

消息标志说明

MC_OPEN_ALIAS MC_OPEN_PARMS结构的lpstrAlias指定设备别名

MC_OPEN_ELEMENT MC_OPEN_PARMS结构的lpstrElementName指定设备元素

MC_OPEN_SHAREABLE按共享设备方式打开设备

MC_OPEN_TYPE MC_OPEN_PARMS结构的lpstrDeviceType指定设备类型

MC_OPEN_TYPE_ID MC_OPEN_PARMS结构的lpstrDeviceType指定设备类型ID

打开简单MCI设备不需指定设备元素,仅需指定MCI_OPEN_PARMS结构中的wDeviceID和lpstrDeviceType。

打开复合MCI设备有以下三种方式。

(1)指定设备的类型:只允许确定MCI设备性能,不能进行其他操作。

(2)指定设备元素(数据文件名)和设备类型:可进行各种操作。

(3)指定MCI设备元素(数据文件名),而把设备类型指定为NULL:使用隐含MCI设备时,MCI将根据设备元素的扩展名从系统定义中选择隐含约定的MCI设备。

三种打开方式的区别如下[7]:

(1)自动识别:打开一个“WA V”文件

MCI_OPEN_PARMS mciOpen;

mciOpen.lpstrDeviceType=0;

mciOpen.lpstrElementName=“aaa.wav”;

mciSendCommand(NULL,MCI_OPEN,

MCI_OPEN_ELEMENT,(DWORD)&mciOpen);

(2)指定设备描述:打开CD播放器

MCI_OPEN_PARMS mciOpen;

mciOpen.lpstrDeviceType=(LPSTR)MCI_DEVTYPE_CD_AUDIO;

mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID,(DWORD)&mciOpen);

(3)指定描述字符串:打开一个AVI文件

MCI_OPEN_PARMS mciOpen;

mciOpen.lpstrDeviceType=“avivideo”;

mciOpen.lpstrElementName=“aaa.avi”;

mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_ELEMENT, (DWORD)&mciOpen);

相关主题
文本预览
相关文档 最新文档