`
阿尔萨斯
  • 浏览: 4398348 次
社区版块
存档分类
最新评论

[J2ME]VideoCoolala(MobileWebCam)设计说明

 
阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

郑昀@ultrapower

产品名称

产品版本

Keyword: Mobile VideoControl Media 拍照手机 j2me midp midlet WebCam java

VideoCoolala

[MobileWebCam]

1.12.1305

[J2ME] VideoCoolala(MobileWebCam)

设计说明

我的MobileWebCam资源:

1[J2ME]VideoCoolala(MobileWebCam)开源说明》

2[J2ME]VideoCoolala(MobileWebCam)设计说明》

3:下载源代码:http://www.cnblogs.com/Files/zhengyun_ustc/videocoolala-src.rar

4:下载midletjad: videoim.jad jar: videoim.jar

摘要:

本文档给出VideoCoolala(MobileWebCam)的设计思路和类说明。

1 简单描述VideoCoolala(MobileWebCam)的背景、功能和特别之处

2 描述调用VideoCoolala(MobileWebCam)的设计思路

3 给出了 VideoCoolala(MobileWebCam)的设计过程中需要特别指出的问题

4 给出了 各种下载资源

1背景、功能和特别之处

摘要:本章 简单描述VideoCoolala(MobileWebCam)的背景、功能和特别之处。

我们提供的VideoIM手机自动拍照上传器J2ME版本[开源]就是这么一种概念:

一个可以下载到手机(例如Nokia7610已经确实可以下载安装并正常运行)Java应用程序,用来自动驱动你的手机摄像头定时拍摄一张图像(默认是Jpeg格式,数据量很小)。然后,后台线程将Jpeg图像(很小,大约几KB)上传到服务器上。手机默默地拍照,默默地上传照片,不用手工干预,比如你可以设置每隔三分钟拍一张照片,然后上传到Flickr这个著名的图片共享站点上,全世界都会看到你的慢速视频。

这样就可以帮助其他系统工作,比如这么一个场景:

PC机上的MSN Messenger用户Vicky正在和你的移动MSN Messenger通过这种方式视频聊天,Vicky的聊天对话框上能够看到你的头像,并且每隔十几秒钟就看到你的手机所看到的画面了,是不是就是一种慢速的移动视频聊天呢?

更多情况参看《[J2ME]VideoCoolala(MobileWebCam)开源说明》

下面介绍VideoCoolala-MobileWebCam的功能列表:

l 我要MobileWebCam

n 启动MobileWebCam

n 停止MobileWebCam

l 设置MobileWebCam

l 关于MobileWebCam

l 退出

1.1. 特别之处

l 这个应用程序的总体思路来自于Mowecam的设计理念。

l MVC的类分解,采用了 mingjava 的思路。

l RMS记录存储的封装模式以及对资源的调用方式,则参照了索爱公司的BlueGammon游戏代码。

对于MVC的类分解,你还可以参考我的另一篇文章《[J2ME]RSSOwlMidlet(RSS无线阅读器)设计说明》

BlueGammon游戏源代码,你可以从

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

BlueGammon的代码很经典,我只是套用了BlueGammonRmsFacade类,将对RMS的操作完全封装起来。另外用VideoSettings类来提供存储和读取RMS中关于本应用所需要的几个参数的功能,VideoSettings其实就是调用了RmsFacade类。

总结一下特别之处。

l 可以设置每隔多少秒钟,抓拍一张照片,上传服务器;

l 可以设置玩家姓名;

l 可以设置远程服务器的接收页面的URL

l 在传送数据的过程中可以提示用户,总共要传送多少字节,还剩余多少字节没有传输;

l 传送的过程发生了错误,会有Alert界面提示用户。

特别是比原来Mowecam的版本增加了几个特性:

l 可以设置抓拍图像的格式,以及大小,从而能够让用户自己控制上传图像的数据量大小;

l 当请求远端服务器时,加入了动画等候画面,提示用户正在不断地向服务器上传数据;

一般来说,Jpeg格式是推荐的,因为它数据量很小,其次是gifbmp,但这两种格式手机不一定支持,最差的是png格式。

在服务器,我制作了一个很简单的ASP页面来接收图像数据,并进行保存。代码很简单,就是利用ADODB.Stream读写数据流,从而能够接收手机持续不断上传的数据,知道如何保存。

2 设计思路

摘要:本章描述VideoCoolala(MobileWebCam)的设计思路。

2.1. 如何使用MMAPI来抓拍照片

关键三个包:

l javax.microedition.media.Manager

l javax.microedition.media.Player

l javax.microedition.media.control.VideoControl

待续。

有时间一定更新。

2.2. MVC设计模式

划分为四个模块:

l midlet

n VideoCoolala.java

u 这当然是MIDlet必须的入口;它负责初始化控制器GUIController

l Model,模型:

n ThreadPostVideo.java

u 提供抓拍照片并发送的功能:

l 负责抓拍照片的逻辑;

l 调用HttpUploadCapturedBuffer上传照片;

n VideoSettings.java

u 提供存储和读取RMS中关于本应用所需要的几个参数的功能

l View,视图:

n About.java

u “关于”的Alert界面

n FormPostProgress.java

u 报告当前上传图像进度的Form

n FormSetting.java

u 提供设置关于本应用所需要的几个参数的Form

n FormWebcam.java

u 负责启动/停止自动拍照和上传照片的主力Form

n MainMenuList.java

u 提供菜单命令的List界面

n WaitFlash.java

u “动画等待画面”的Canvas界面,能够同时告知用户上传进度

l controller

n GUIController.java

u MVC中的控制器部分,负责界面事件的处理,以及决定该显示哪一个Form

控制器的事件处理部分:

下面来看看如何处理界面事件。

代码

public void handleEvent( int eventID,Object[] args){

switch (eventID)

{

case EventID.EVENT_EXIT:

{

System.gc(); // 通知进行垃圾收集

Thread.yield(); // 本线程暂停一下,使得GC可以马上获得机会运行

rssMidlet.exit(false);

break;

}

case EventID.EVENT_SHOWWEBCAM:

{

try

{

m_webcamForm.StartCapture();

}

catch(Exception exc)

{

}

setCurrent(m_webcamForm);

break;

}

case EventID.EVENT_SETTINGS:

{

setCurrent(m_settingForm);

break;

}

case EventID.EVENT_STARTWEBCAM:

{

m_webcamForm.StartWebcamSnapshot();

setCurrent(m_webcamForm);

break;

}

……

每一个Form的如何转发事件:

每一个Form上也有事件响应,并可以自行处理事件,然后加入参数,进一步转发事件到控制器上。这个概念来自于mingjava

代码

/*

* 内部监听器,监听器监听所有Command事件,并把事件响应推出来让控制器处理

*/

private class FormWebcamListener implements CommandListener{

public void commandAction(Command command, Displayable disp){

if(command == cmdBack){

controller.handleEvent(GUIController.EventID.EVENT_WEBCAM_BACK, null);

}

else if(command == cmdStart){

controller.handleEvent(GUIController.EventID.EVENT_STARTWEBCAM, null);

}

else if(command == cmdStop){

controller.handleEvent(GUIController.EventID.EVENT_STOPWEBCAM, null);

}

//end else

}

}//end inner class

2.3. 上传图像的后台线程问题

待续。

有时间一定更新。

3 设计过程中需要特别指出的问题

摘要:本章给出了 VideoCoolala(MobileWebCam)的设计过程中需要特别指出的问题。

3.1. 图像格式和数据量的问题

有一篇《Camera speed evaluation of the Nokia 6600》专门评估了Nokia6600在不同图像格式下使用摄像头的速度以及图像大小,很有参考价值。

从中,我们可以看出PNG图像的数据量是最大的,Jpeg的数据量是最小的。

Format of the image: PNG

Example picture:

Result of the test running for PNG images:

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1027" style="WIDTH: 150pt; HEIGHT: 112.5pt" type="#_x0000_t75" alt=""><imagedata src="file:///C:/DOCUME~1/VICTOR~1/LOCALS~1/Temp/msohtml1/01/clip_image001.png" o:href="http://www.hcilab.org/documents/tutorials/ImagePerformanceEvaluation/pictures/imagePNG.png"></imagedata></shape>

Resolution

Time in seconds

Memory Size in KB

Number of pictures

80x60

1s

12, 7KB

1

3s

4

5s

8

7s

11

10s

15

160x120

1s

42, 0 KB

1

3s

3

5s

5

7s

7

10s

10

200x150

1s

67,4 KB

1

3s

2

5s

3

7s

5

10s

7

Format of the image: BMP

Exapmle picture:

Result of the test running: for BMP images

<shape id="_x0000_i1025" style="WIDTH: 150pt; HEIGHT: 112.5pt" type="#_x0000_t75" alt=""><imagedata src="file:///C:/DOCUME~1/VICTOR~1/LOCALS~1/Temp/msohtml1/01/clip_image003.png" o:href="http://www.hcilab.org/documents/tutorials/ImagePerformanceEvaluation/pictures/imageBMP.png"></imagedata></shape>

Resolution

Time in seconds

Memory size in KB

Number of pictures

80x60

1s

5,8 KB

1

3s

5

5s

8

7s

12

10s

17

160x120

1s

20,2 KB

1

3s

3

5s

6

7s

9

10s

12

200x150

1s

31,0 KB

1

3s

2

5s

4

7s

6

10s

8

Format of the image: GIF

Example picture:

Result of the test running

<shape id="_x0000_i1028" style="WIDTH: 150pt; HEIGHT: 112.5pt" type="#_x0000_t75" alt=""><imagedata src="file:///C:/DOCUME~1/VICTOR~1/LOCALS~1/Temp/msohtml1/01/clip_image005.png" o:href="http://www.hcilab.org/documents/tutorials/ImagePerformanceEvaluation/pictures/imageGIF.gif"></imagedata></shape>

Resolution

Time in seconds

Memory size in KB

Number of pictures

80x60

1s

2,3 KB

1

3s

5

5s

8

7s

12

10s

17

160x120

1s

4,8 KB

1

3s

3

5s

6

7s

9

10s

12

200x150

1s

7,1 KB

1

3s

2

5s

4

7s

6

10s

8

Format of the image: JPEG

Example picture:

Result of the test running

<shape id="_x0000_i1026" style="WIDTH: 150pt; HEIGHT: 112.5pt" type="#_x0000_t75" alt=""><imagedata src="file:///C:/DOCUME~1/VICTOR~1/LOCALS~1/Temp/msohtml1/01/clip_image007.jpg" o:href="http://www.hcilab.org/documents/tutorials/ImagePerformanceEvaluation/pictures/imageJPEG.jpeg"></imagedata></shape>

Resolution

Time in seconds

Memory size in KB

Number of pictures

80x60

1s

1,1 KB

1

3s

5

5s

8

7s

12

10s

18

160x120

1s

2,9 KB

1

3s

3

5s

6

7s

9

10s

12

200x150

1s

3,0 KB

1

3s

2

5s

4

7s

6

10s

9

4 资源

我的MobileWebCam资源:

1《[J2ME]VideoCoolala(MobileWebCam)开源说明》

2《[J2ME]VideoCoolala(MobileWebCam)设计说明》

3:下载源代码:http://www.cnblogs.com/Files/zhengyun_ustc/videocoolala-src.rar

4:下载midletjad: videoim.jad jar: videoim.jar

网络资源:

1熟练使用J2ME在实际开发中的可选包MMAPI

2J2ME中用MMAPI开发手机摄像头程序

3Camera speed evaluation of the Nokia 6600

4BlueGammon

编写者

日期

关键词

郑昀@ultrapower

2005-10-12

Mobile VideoControl Media 拍照手机 j2me midp midlet WebCam java




分享到:
评论

相关推荐

    J2ME游戏课程设计

    在文档方面,提供的中文和英文Word文档很可能是对游戏设计的详细说明,包括游戏规则、设计思路、实现步骤和可能遇到的问题及解决方案。通过阅读这些文档,学生不仅可以学习到具体的编程技巧,还能了解到游戏设计的...

    J2ME课程设计_贪吃蛇

    **J2ME课程设计——贪吃蛇** J2ME(Java Micro Edition)是Java平台的一个重要分支,主要用于嵌入式设备和移动设备的开发,如早期的智能手机和平板电脑。在J2ME平台上进行课程设计,可以让我们学习到Java语言的基础...

    J2me俄罗斯方块,设计报告

    《J2me俄罗斯方块设计报告》是一份深入解析如何使用Java 2 Micro Edition (J2ME) 技术开发经典游戏俄罗斯方块的详细文档。这份报告涵盖了从项目规划到实现过程的各个环节,旨在帮助学习者理解移动平台游戏开发的基础...

    J2ME手机游戏设计

    本文将详细解析"J2ME手机游戏设计"这一主题,结合提供的文件资源,包括"J2ME手机连连看游戏.doc"、"基于J2ME的泡泡龙游戏的设计与实现.PDF"和"j2me连连看代码.rar",来探讨J2ME游戏设计的核心概念、技术应用以及实际...

    J2ME程序设计实例

    **J2ME程序设计实例详解** Java 2 Micro Edition(J2ME)是Java平台的一个重要组成部分,专门针对嵌入式设备和移动设备的应用开发。它提供了轻量级的运行环境和开发框架,使得开发者可以为手机、智能手表、家用电器...

    J2ME手机游戏设计文档

    标题中的“J2ME手机游戏设计文档”表明了本文档主要关注的是利用Java 2 Micro Edition(J2ME)技术来开发手机游戏的过程和特点。J2ME是一种为小型设备和无线通信设备设计的Java平台,它在移动设备上的应用广泛,尤其...

    J2ME程序设计实例教程实例源码

    **J2ME程序设计概述** Java 2 Micro Edition(J2ME)是Java平台的一个子集,主要用于开发在资源有限的设备上运行的应用程序,如移动电话、智能家电、嵌入式系统等。J2ME提供了跨平台的可移植性,使得开发者能够编写...

    J2ME课程设计

    **J2ME课程设计概述** Java Micro Edition (J2ME) 是Java平台的一个子集,专为嵌入式设备和移动设备开发应用而设计。它提供了丰富的API,使得开发者能够创建功能丰富的移动应用,包括多媒体播放、网络访问、游戏...

    基于J2ME的手机游戏设计说明.doc

    基于J2ME的手机游戏设计说明.doc

    j2me课程设计,服务器与客户机的发送

    【J2ME课程设计——构建服务器与客户端通信】 在IT领域,Java 2 Micro Edition(J2ME)是一种专门用于嵌入式设备和移动设备的Java平台。它为开发小型应用提供了框架,如手机游戏、应用程序和服务。本课程设计的主题...

    j2me设计

    【标题】:J2ME设计 在移动设备的早期阶段,Java 2 Micro Edition(J2ME)是一种广泛使用的开发平台,用于创建能在小型设备上运行的应用程序,比如早期的智能手机和平板电脑。"J2ME公交车查询系统"是利用J2ME技术...

    J2ME手机程序设计与应用

    **J2ME手机程序设计与应用** J2ME(Java 2 Micro Edition)是Java平台的一个子集,专为资源有限的嵌入式设备,尤其是移动设备如早期的智能手机和平板电脑而设计。J2ME提供了开发和部署移动应用程序的框架,让开发者...

    J2ME手机编程设计

    **J2ME手机编程设计** Java 2 Micro Edition(J2ME)是Oracle公司推出的用于开发和部署在小型设备、消费电子设备以及嵌入式系统上的Java应用程序的平台。它为移动设备提供了丰富的功能,包括游戏开发。在这个领域,...

    J2ME手机游戏设计示例代码

    本文将深入探讨J2ME手机游戏设计的相关知识点,通过示例代码来帮助理解其核心概念和实践技巧。 J2ME是Java平台的一个子集,专门为资源有限的嵌入式设备如手机和平板电脑设计。它包含了一套运行环境(MIDP, Mobile ...

    j2me贪吃蛇游戏设计

    《J2ME贪吃蛇游戏设计详解》 贪吃蛇是一款经典的电子游戏,深受各年龄段玩家的喜爱。在Java 2 Micro Edition(J2ME)平台上,我们也可以实现这个有趣的游戏。J2ME是一种轻量级的Java平台,主要用于移动设备和嵌入式...

    J2ME程序设计——手机游戏与应用程序PDF(谢晓勇,黄奇).rar

    《J2ME程序设计——手机游戏与应用程序》是由谢晓勇和黄奇合著的一本专业书籍,主要探讨了如何利用Java 2 Micro Edition (J2ME) 平台进行手机游戏和应用程序的开发。J2ME是Java平台的一个子集,特别针对嵌入式设备和...

Global site tag (gtag.js) - Google Analytics