摘要:
本文档给出Mobile TrafficCam Viewer的实现说明。
第1章 简单描述Mobile TrafficCam Viewer的功能和特别之处。
第2章 给出了 Mobile TrafficCam Viewer的下载资源。
1背景、功能和特别之处
摘要:本章 简单描述Mobile TrafficCam Viewer的背景、功能和特别之处。
1.1. 手机看交通重要路口摄像头 – 北京司机的心愿?
我每天开车三个多小时,最喜欢听的节目就是1039的一路畅通。堵在北四环的时候,热切地盼望着主持人早点播报路况信息。但往往他们不说北四环,可能因为这里常年拥堵吧。这时就心想,要是我自己能够看到前行路上每一个交通要道的实况就好了,知道什么时候通了,什么时候茬上了,这样也有个盼头,或者提前选择道路避让。
您该问了,北京各个地方的交通监视器摄像头能提供给你吗?
答,可以,北京各个路口的摄像头实况,已经有人提供流媒体服务器播放了。
从 mms://real.u-mail.cn/cebeijing1,到 mms://real.u-ail.cn/cebeijing58。为了演示本项目,我选择了国贸桥的监视器:mms://real.u-mail.cn/cebeijing10
您又有疑问了,手机怎么看呢?
答,当然了,现有的各种品牌的手机都不会支持流媒体的,他们只能播放手机存储卡的媒体文件或者内存中的InputStream。我们呢,就必须自建一个服务器,帮助手机转换流媒体为手机支持的标准播放格式,然后提供给手机下载播放。这个下载转换过程是很快的。
那么,在当前移动网络带宽的情况下如何保证实用性呢?
答,我们并不是让手机播放实时的流媒体,而是当用户想看路况时,就通过GPRS通知我们的3GP转换服务器,仅仅去下载交通监视器流媒体数据的几秒钟长度数据,然后转换为3GP标准格式。这样,一段2秒钟的实时录像大约为35KB,在中国移动GPRS的带宽为13Kbps~54Kbps情况下,最多3秒钟就下载到手机上了并播放。整个过程大约在10秒钟之内就能完成,这样比较接近于实时交通了,用户应该可以接受。
下载的实况录像是否保存在手机上呢?
答,我们只将数据存储在内存中,然后让手机播放,并不会占用手机存储卡空间。
1.2. Mobile TrafficCam Viewer概要
我们提供的Mobile TrafficCam Viewer J2ME版本 就是这么一种概念:
一个可以下载到手机(例如Nokia7610已经确实可以下载安装并运行)的Java应用程序。
每次选择它的“Download&Play”命令,它就会向我们的服务器发起请求(通过GPRS),然后下载服务器准备好的3gp格式数据,并播放它。你还可以选择Replay刚才下载的交通路况录像。
1.3. 如何来体验Mobile TrafficCam Viewer
这样,每天当我在车里,在安慧桥前苦苦等待的时候,就可以拿起手机随时看一眼前方惠新东桥的实时路况录像,以解我心忧!
或者当我停在翠宫大厦前时,就可以先看一眼安慧桥的实时路况录像,以决定是不是还走四环。
如果你真的要在实际生活中用到这种功能,那么请申请开通你的GPRS包月套餐,那样20块钱就可以自由使用GPRS了。
建议你的手机是Nokia的手机,同时用Nokia程序管理器设置这个应用配置参数:在连接网络时第一次询问。
为了更好地体验本应用,请先下载TrafficCam.jad和TrafficCam.jar到计算机上,安装了Nokia开发者模拟器后,用S60系列的模拟器来运行TrafficCam.jad。你就可以看到下面所描述的效果了。
在服务器端,我配置了一个Java Web Service,来做mms流媒体的格式转换工作,从WMV3格式转换为3gpp格式。3gpp格式是标准,MIDP2.0的手机都支持的。
1.4. Mobile TrafficCam Viewer功能列表
下面介绍Mobile TrafficCam Viewer的功能列表:
l TrafficView
n Download&Play
n StopDownload&Play
l Settings
l About
l Exit
下面就是应用程序的主界面:
图1-1 Mobile TrafficCam Viewer的主界面
图1-2 Mobile TrafficCam Viewer的TrafficView主界面,提供了Download&Play命令
图1-3 下载了国贸桥的交通录像,并在播放中
图1-4 Mobile TrafficCam Viewer已经下载了西直门的交通录像,并在播放中
图1-5 Mobile TrafficCam Viewer停止播放下载的交通录像,提供了Replay命令来重放
图1-6 Mobile TrafficCam Viewer的Settings界面,来设置转换服务器地址以及下载录像的秒数
1.5. 特别之处
下面,我们说说这个应用程序的特别之处。
l 这个应用程序的总体思路其实很简单,最重要的工作是在服务器端由一个Java Web Service做的。本Midlet应用就是利用KSoap2和远端Web Service交互之后,下载3gp媒体文件流,然后播放。
l MVC的类分解,采用了 mingjava 的思路。
l 对RMS记录存储的封装模式以及对资源的调用方式,则参照了索爱公司的BlueGammon游戏代码。
对于MVC的类分解,你还可以参考我的另一篇文章《[J2ME]RSSOwlMidlet(RSS无线阅读器)设计说明》以及《[J2ME]Mobile TrafficCam Viewer设计说明》。
BlueGammon游戏源代码,你可以从
下载。
BlueGammon的代码很经典,我只是套用了BlueGammon的RmsFacade类,将对RMS的操作完全封装起来。另外用VideoSettings类来提供存储和读取RMS中关于本应用所需要的几个参数的功能,VideoSettings其实就是调用了RmsFacade类。
总结一下特别之处。
l 可以设置转换服务器下载多少秒钟长度的交通实时录像;
l 可以选择从1到58个摄像头的录像,遍及京城各个角落;
l 可以设置远程服务器的Web Service的URL;
l 转换出的3gp格式能够实际被手机所播放。(并不是每一个Convert Application都能够转换出能够真正被Nokia手机识别的3gpp格式!我也是花费了很长时间才寻找到解决之道的。)
实际上,mpeg格式也是很多手机支持播放的,但是因为mpeg数据量是3gpp格式的两倍以上,而且3gpp格式是未来的标准,所以最终我们还是选择了3gpp。
那么什么是3gpp呢?
3G peer protocol(3gpp)是基于3G移动通信网络上的一种创建、传输、回放多媒体的标准。这种标准是基于MPEG-4编码技术的。市面上众多的MPEG-4标准只要支持3GPP这个标准都可以用于3G移动通信设备上。
1.6. 小结
总的来说,让手机播放流媒体,目前是做不到的。但是不等于说,基于流媒体的应用就无法在手机上实现,只要换一个思路,就可以。
不过,交通路况实时录像是一个比较特殊的流媒体移动应用。它的用户是可以接受只能察看几秒钟乃至10秒钟的录像的,因为短短几秒钟的路况录像信息就足以让人判断出来是拥堵还是畅通了。
2 资源
我的Mobile TrafficCam Viewer资源:
1:《[J2ME]手机实时交通监视器开源说明》
2:下载源代码:
3:下载midlet:jad: TrafficCam.jad jar:TrafficCam.jar
网络资源:
1:熟练使用J2ME在实际开发中的可选包MMAPI
2:实例解析MMS流媒体协议,下载LiveMediaVideo[1]
3:BlueGammon
4:北京各个路口的摄像头实况。以后下班前先看看路况再走
从 mms://real.u-mail.cn/cebeijing1 到 mms://real.u-ail.cn/cebeijing58
下面是已经辨认出来的:
3 三元桥 mms://real.u-mail.cn/cebeijing3
7 马甸 mms://real.u-mail.cn/cebeijing7
8 西直门 mms://real.u-mail.cn/cebeijing8
9 西厢月坛桥 mms://real.u-mail.cn/cebeijing9
10 国贸桥 mms://real.u-mail.cn/cebeijing10
14 天宁寺桥 mms://real.u-mail.cn/cebeijing14
15 永定门 mms://real.u-mail.cn/cebeijing15
16 手帕口桥 mms://real.u-mail.cn/cebeijing16
17 西二环(官园北)?mms://real.u-mail.cn/cebeijing17
26 十里河 mms://real.u-mail.cn/cebeijing26
27 木樨园南mms://real.u-mail.cn/cebeijing27
34 北二环小街桥 mms://real.u-mail.cn/cebeijing34
35 二环东直门 mms://real.u-mail.cn/cebeijing35
36 二环德胜门 mms://real.u-mail.cn/cebeijing36
37 安定门 mms://real.u-mail.cn/cebeijing37
41 三环蓟门桥 mms://real.u-mail.cn/cebeijing41
42安贞桥 mms://real.u-mail.cn/cebeijing42
44 白石桥 mms://real.u-mail.cn/cebeijing44
47 阜石路出四环西北角 mms://real.u-mail.cn/cebeijing47
48 西四环五棵松北 mms://real.u-mail.cn/cebeijing48
50 北苑路 mms://real.u-mail.cn/cebeijing50
51 八达岭 mms://real.u-mail.cn/cebeijing51
52 八达岭2 mms://real.u-mail.cn/cebeijing52