<b>産品名稱</b><b></b>
<b>産品版本</b>
keyword: mobile videocontrol media 拍照手機 j2me midp midlet webcam java
<b>videocoolala</b>
<b>[mobilewebcam]</b>
1.12.1305
<b>[j2me] videocoolala(mobilewebcam)</b>
<b>設計說明</b><b></b>
<b>我的</b><b>mobilewebcam</b><b>資源:</b><b></b>
本文檔給出videocoolala(mobilewebcam)的設計思路和類說明。
第1章 簡單描述videocoolala(mobilewebcam)的背景、功能和特别之處。
第2章 描述調用videocoolala(mobilewebcam)的設計思路。
第3章 給出了 videocoolala(mobilewebcam)的設計過程中需要特别指出的問題。
第4章 給出了 各種下載下傳資源。<b></b>
<b> </b>
<b>摘要</b>:本章 簡單描述<b>videocoolala(mobilewebcam)</b>的背景、功能和特别之處。
我們提供的<b>videoim</b>手機自動拍照上傳器j2me版本[開源]就是這麼一種概念:
這樣就可以幫助其他系統工作,比如這麼一個場景:
pc機上的msn messenger使用者vicky正在和你的移動msn messenger通過這種方式視訊聊天,vicky的聊天對話框上能夠看到你的頭像,并且每隔十幾秒鐘就看到你的手機所看到的畫面了,是不是就是一種慢速的移動視訊聊天呢?
下面介紹<b>videocoolala-mobilewebcam</b>的功能清單:
l 我要<b>mobilewebcam</b>
n 啟動<b>mobilewebcam</b>
n 停止<b>mobilewebcam</b>
l 設定<b>mobilewebcam</b>
l 關于<b>mobilewebcam</b>
l 退出
l 這個應用程式的總體思路來自于mowecam的設計理念。
l mvc的類分解,采用了 mingjava 的思路。
l 對rms記錄存儲的封裝模式以及對資源的調用方式,則參照了索愛公司的bluegammon遊戲代碼。
bluegammon遊戲源代碼,你可以從
bluegammon的代碼很經典,我隻是套用了bluegammon的rmsfacade類,将對rms的操作完全封裝起來。另外用videosettings類來提供存儲和讀取rms中關于本應用所需要的幾個參數的功能,videosettings其實就是調用了rmsfacade類。
總結一下特别之處。
l <b>可以設定每隔多少秒鐘,抓拍一張照片,上傳伺服器;</b><b></b>
l <b>可以設定玩家姓名;</b><b></b>
l <b>可以設定遠端伺服器的接收頁面的</b><b>url</b><b>;</b><b></b>
l <b>在傳送資料的過程中可以提示使用者,總共要傳送多少位元組,還剩餘多少位元組沒有傳輸;</b><b></b>
l <b>傳送的過程發生了錯誤,會有</b><b>alert</b><b>界面提示使用者。</b><b></b>
特别是比原來mowecam的版本增加了幾個特性:
l <b>可以設定抓拍圖像的格式,以及大小,進而能夠讓使用者自己控制上傳圖像的資料量大小;</b><b></b>
l <b>當請求遠端伺服器時,加入了動畫等候畫面,提示使用者正在不斷地向伺服器上傳資料;</b><b></b>
一般來說,jpeg格式是推薦的,因為它資料量很小,其次是gif和bmp,但這兩種格式手機不一定支援,最差的是png格式。
在伺服器,我制作了一個很簡單的asp頁面來接收圖像資料,并進行儲存。代碼很簡單,就是利用adodb.stream讀寫資料流,進而能夠接收手機持續不斷上傳的資料,知道如何儲存。
<b>摘要</b>:本章描述<b>videocoolala(mobilewebcam)</b>的設計思路。
關鍵三個包:
l javax.microedition.media.manager;
l javax.microedition.media.player;
l javax.microedition.media.control.videocontrol。
待續。
有時間一定更新。
劃分為四個子產品:
l midlet:
n videocoolala.java:
u 這當然是midlet必須的入口;它負責初始化控制器guicontroller
l <b>model</b><b>,模型:</b><b></b>
n threadpostvideo.java
u 提供抓拍照片并發送的功能:
l 負責抓拍照片的邏輯;
l 調用httpuploadcapturedbuffer上傳照片;
n videosettings.java
u 提供存儲和讀取rms中關于本應用所需要的幾個參數的功能
l <b>view</b><b>,視圖:</b><b></b>
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 <b>controller</b><b>:</b><b></b>
n guicontroller.java
u mvc中的控制器部分,負責界面事件的處理,以及決定該顯示哪一個form
<b>控制器的事件處理部分:</b><b></b>
下面來看看如何處理界面事件。
<b>代碼</b><b></b>
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);
case eventid.event_startwebcam:
m_webcamform.startwebcamsnapshot();
……
<b>每一個</b><b>form</b><b>的如何轉發事件:</b><b></b>
每一個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
<b>摘要</b>:本章給出了 videocoolala(mobilewebcam)的設計過程中需要特别指出的問題。
有一篇《camera speed evaluation of the nokia 6600》專門評估了nokia6600在不同圖像格式下使用攝像頭的速度以及圖像大小,很有參考價值。
從中,我們可以看出png圖像的資料量是最大的,jpeg的資料量是最小的。
<b>format of the image: png</b>
<b>example picture:</b>
<b>result of the test running for png images:</b>
<b>resolution</b>
<b>time in seconds</b>
<b>memory size in kb</b>
<b>number of pictures</b>
80x60
1s
12, 7kb
1
3s
4
5s
8
7s
11
10s
15
160x120
42, 0 kb
3
5
7
10
200x150
67,4 kb
2
<b>format of the image: bmp</b>
<b>exapmle picture:</b>
<b>result of the test running: for bmp images</b>
5,8 kb
12
17
20,2 kb
6
9
31,0 kb
<b>format of the image: gif</b>
<b>result of the test running</b>
2,3 kb
4,8 kb
7,1 kb
<b>format of the image: jpeg</b>
1,1 kb
18
2,9 kb
3,0 kb
<b>網絡資源:</b>
1:熟練使用j2me在實際開發中的可選包mmapi
2:j2me中用mmapi開發手機攝像頭程式
3:camera speed evaluation of the nokia 6600
4:bluegammon
編寫者
日期
關鍵詞
鄭昀@ultrapower
2005-10-12
mobile videocontrol media 拍照手機 j2me midp midlet webcam java