[J2ME] 手机看交通监视器实时录像 实现说明

2024-03-16 05:40

本文主要是介绍[J2ME] 手机看交通监视器实时录像 实现说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要:

本文档给出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的主界面

TrafficView界面 

图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游戏源代码,你可以从

http://files.cnblogs.com/zhengyun_ustc/Bluegammon-eclipse.rar 下载。

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:下载源代码:http://files.cnblogs.com/zhengyun_ustc/trafficcam-src.rar

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


转自http://www.cnblogs.com/zhengyun_ustc/archive/2005/10/24/mobiletrafficcamviewer.html

这篇关于[J2ME] 手机看交通监视器实时录像 实现说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/814479

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

如何在 Spring Boot 中实现 FreeMarker 模板

《如何在SpringBoot中实现FreeMarker模板》FreeMarker是一种功能强大、轻量级的模板引擎,用于在Java应用中生成动态文本输出(如HTML、XML、邮件内容等),本文... 目录什么是 FreeMarker 模板?在 Spring Boot 中实现 FreeMarker 模板1. 环

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too