2009年2月5日 星期四

Nokia 5800 XpressMusic一樣不支援"CameraControl"

記得一年多前,用N95把玩Camera時,當時研究J2ME對Camera的支援程度
發現AMMS API(JSR-234)在N95中 not support CameraControl
沒想到一年後,JavaTM ME Developer's Library從1.4版升級到3.1..
而AMMS API也更新為1.1版本,很不幸...一樣不支援!

原本想說S60 5th版本對J2ME支援會有所突破,看來並非如此。
目前看來對S60 5th版本新增加的部份有
  • Tactile Feedback(震動回饋)
  • Touch UI
看來增加的部份相當少,連螢幕旋轉的功能都沒有!
J2ME能玩的東西越來越少了,感覺Flash Lite慢慢要勝過J2ME嘍....

另外在profile部份,Nokia 5800支援還不少,像Location API及eSWT API感覺都還蠻有趣的,有時間一定要好好研究一下~

Nokia 5800 Specifications

之前提到使用MMAPI設定抓取照片的格式與大小,一開始是直接看Sun's mmapi specifications,後來發現在JavaTM ME Developer's Library當中也有詳細說明支援的程度。
仔細一看才發現,原來Nokia的MMAPI是不支援exif格式.....

如果想改變拍照時格式與大小,可以參考以下範例:
(資料參考JavaTM ME Developer's Library 2.3)
  • videoControl.getSnapshot(null); //如果都不設定預設為png,160x120大小
  • videoControl.getSnapshot("encoding=bmp"); //bmp格式
  • videoControl.getSnapshot("width=80&height=60"); // default PNG
  • videoControl.getSnapshot("encoding=bmp&width=80&height=60")
  • videoControl.getSnapshot("encoding=jpeg&quality=10"); //quality指的是輸出品質10為最高(範圍1~10)
而encoding部份,Nokia支援的格式有png, bmp, gif, jpeg四種格式。

另外之前提到,建立Player時需要device的名稱,而Nokia分為三種:
  • capture://video (for video recording and image capture)
  • capture://devcam0 (for video recording and image capture)
  • capture://devcam1 (second camera, if the device has two cameras, only 3G phone)

Synology DS-207 Disk Station Manager 2.1 Beta

買NAS已經有半年之久,除了S牌硬碟經常給我出包外
這台NAS穩定度還算不錯,至少還沒有當機過.....

在家待業的我,今天上Synology官網時發現新版的韌體
大大的標示Disk Station Manager 2.1開放測試
毫不考慮就下載升級嘍~

為什麼想要升級呢?因為內建的eMule下載器竟然不支援到4GB以上的檔案下載
這樣一來,不是有很多"大型"檔案無法下載了嗎?
所以冒險還是要更新一下!

新版的登入畫面

與前一版不同的是,登入成功後才出現功能選單

新版主要更新介面外,最大的突然應該就是File Station與eMule吧!
畢竟之前的File Station用起來較麻煩些,新版的則提拖曳及右鍵選單等功能~
另外郵件伺服器及進階空間管理的功能在ds-207上是沒有的,讓我蠻失望的...
希望正試版的更新會加進去....

2008年8月23日 星期六

Adobe Web Premium 序號過期解法

最近想說要把另一台電腦也安裝Adobe Dreamweaver CS3,安裝完成後一執行發現出現"序號過期"的訊息,結果就這樣重安裝了3次....還是一樣的結果~

後來再網路上搜尋時,找到了幾篇文章,提供了解法~
  1. 首先先安裝完Adobe Web Permium
  2. 安裝完成後執行程式進入註冊畫面,並輸入註冊序號繼續下一步
  3. 此時會出現序號過期訊息,接下來軟體將會自動關閉
  4. 將「C:\Program Files\Common Files\Adobe\Adobe PCD\cache\cache.db」刪除
  5. 再一次執行程式會要求您再次輸入序號,就請輸入您剛剛所用的那組序號
  6. "注意別急著按"下一步
  7. 此時會發現「C:\Program Files\Common Files\Adobe\Adobe PCD\cache\cache.db」又出現了,先將「C:\Program Files\Common Files\Adobe\Adobe PCD\cache\cache.db」的屬性設為唯讀,再繼續下一步驟
  8. 接下來會出現註冊訊息,選擇"稍後註冊"後繼續
  9. 再來就會自行啟動軟體,會再出現一次註冊訊息,再將cache.db檔案取消唯讀後,選擇"永不註冊",按繼續
  10. 最後成功開啟軟體後,再一次將cache.db檔案設為唯讀,即可正常使用軟體

2008年8月18日 星期一

Synology DS207 NAS

最近一個月,都在研究NAS,原本打算購入PCI的NAS,但是在網路上找了許久,沒看到令我覺得價格滿意,況且這台PCI的NAS也推出有兩年之久,軟體、介面、功能都遠遠輸目前主流的NAS~

後來,經過網路搜尋與觀察的結果,選擇了幾個不錯的NAS廠牌,像是QNAP、Synology、Promise...等幾家NAS。可惜的是,在這幾個廠牌中,QNAP與Promise這兩家並無Web Server的功能,雖然有eMule與較高規格的硬體,但基於Web Server與價格的考量,就選擇的心中第三名的選擇。

不過後來仔細研究了Synology的NAS,發現這家公司似乎是目前提供最多軟體支援的廠商,甚至在視覺介面上我又有特別的要求,所以經過兩個禮拜的考慮,我購買了Synology DS207。而購買這型號的主要原因是它擁有RAID 1的功能,而且又低於7000($6999)。

目前已經試用了一個月,發現好物也還是有缺點,畢竟DS207這台NAS的CPU只有266MHz,記憶體64MB,似乎低了一些....。在下載方面,目前Synology只支援BT、HTTP、FTP下載,eMule目前並不支援(聽說在2008/8推出韌體更新),所以如果想下載eMule的人,要好好考慮嘍。

在開發方面,Synology有提供toolchain,讓一些程式設計者可以開發屬於自己的軟體,當然環境是Linux。不過DS207所使用的CPU為Power PC架構,讓我更產生好奇心,畢竟在研究所時,都是使用ARM來開發,如果有時間,可以玩看看這兩者的差異。

以下簡單列出Synology DS207軟體規格
  • CPU:266MHz
  • RAM:64MB
  • HDD:最大支援單顆1TB,
  • RAID 0, 1
  • Apache:2.2.8
  • PHP:5.2.6
  • MySQL:5.0.51b
  • Linux kernel:2.6
Synology DS207

2007年12月18日 星期二

【Flickr】使用Flash~

最近開始研究Flickr,想要透Flickr提供的API來架設一個自己的網站。
(距離上一次架設個人網站應該有....12年了吧,還記得當初架設網站的名稱叫"麻署俱樂部"..俗!)

原本打算使用JSP來實現,不過似乎使用Flash也是不錯的選擇~
所以在網路上搜尋了相關的Flash API,似乎也有API提供下載使用,這樣可以節省很多的時間~
上面兩個是目前用於Flickr的Flash API,我目前是使用Adobe Labs所提供的API。

原本是使用Flashr來做開發,只是不知道為什麼無法解決Flash 8以後安全性的問題,導致無法將Flickr回傳的資料呈現在Flash上,所以最後就使用Adobe Labs Flickr API。

不過新的ActionScript 3.0也較容易入門,或許是因為有Java物件導向的關念,所以很快就入手;在網路上也找到簡單的simple code(感謝提供),抓取自己Flickr最近拍攝的照片,只是...光這個simple code就卡了我快一天的時間(因為這simple code沒有分享fla檔案)。

既然不懂Flash,就慢慢try吧,最後竟然是沒有將資料回傳至fla的問題,在沒有書的情況下要找到這問題似乎很難,最後測試了一天才成功將圖片呈現出來。

簡單描述實作的方法~
  • 建立fla檔
  • 建立一個"影片片段"元件
  • 把建立好的元件新增至影格
  • 在影格中加入ActionScript
  • 加入以下程式碼
  • import FlickrViewr; //匯入FlickrViewr.as檔
    var photoMenu:MovieClip; //宣告一影片片段為photoMenu
    photoMenu = new FlickrViewr(); //new FlickrViewr至photoMenu
    photoMenu.Main(); //執行Main()從Flickr抓取資料
    addChild(photoMenu); //將photoMenu加入至影片片段

以下是測試結果:

2007年12月13日 星期四

【Flickr】使用JSP~

最近開始研究Flickr API,發現還蠻多資源可以使用的~

目前使用Java開發的lib有:
  • flickrj
  • jickr

2007年12月10日 星期一

【Symbian】改變錄影格式

在Nokia官網裡提供的錄影程式,預設是使用QCIF(176x144)錄影,解析度似乎低了些,加入及修改下述的程式片段來提高錄影的品質。

使用mp4格式,CIF(352x288)
_LIT8(KMimeTypeMPEG4VSPL3, "video/mp4v-es; profile-level-id=3");
使用mp4格式,CIF(640x480, 30 fps, Nokia N95 & N93Support)
_LIT8(KMimeTypeMPEG4VSPL4, "video/mp4v-es; profile-level-id=4");
在程式片段中,在寫入檔案的部份要定義格式
iUtility->OpenFileL( iFilename,
iCameraHandle,
iControllerUid,
iFormatUid,
KMimeTypeMPEG4VSPL4);
在Prepare()之前,必需要錄影格式設定好
TRAP_IGNORE( iUtility->SetVideoFrameSizeL( iUtility ));
TRAP_IGNORE( iUtility->SetVideoBitRateL( KMMFVariableVideoBitRate ));
......
iUtility->Prepare();

2007年12月8日 星期六

Ubuntu 7.10 + Apache + PHP + phpMyAdmin

以下是安裝的步驟紀錄~

安裝Apache 2
sudo apt-get install apache2
安裝PHP5
sudo apt-get install php5
安裝mysql lib for apache2
sudo apt-get install libapache2-mod-auth-mysql
安裝mysql lib for php
sudo apt-get install php5-mysql
安裝完成後,apache相關設定路徑~
Apache設定檔:/etc/apache2/apache2.conf
Apache網頁預設目錄:/var/www
啟動apache~
sudo /etc/init.d/apache2 start
關閉apache~
sudo /etc/init.d/apache2 stop
安裝phpMyAdmin
sudo apt-get install phpmyadmin
(安裝完成後,路徑為/usr/share/phpmyadmin)
(記得利用mysqladmin -u root password [密碼] 設定一組密碼登入使用)

2007年11月26日 星期一

Web Server Setup(Ubuntu 7.10 + Tomcat 6 + MySQL + JDBC)

這幾天從家裡整裡了一台電腦,架設一台Web Server,以後會慢慢將資料轉移到這台電腦上。

規格為:
Intel Celeron 1000MHZ
512M RAM
Ubuntu 7.10
Tomcat 6.0.14
在安裝Ubuntu 7.10完後,發現並沒有安裝ssh的服務,準備apt-get時,竟然找不到相關套件,最後發現原來/etc/apt/source.list中所有的更新網站列表都被註解了,將所有#刪掉後,開始安裝openssh-server.
sudo apt-cache update
sudo apt-get install ssh
安裝完成後的ssh預設port為22,可以從/etc/ssh/sshd_config下將port改成另一個port,防止被攻擊。

Tomcat 6的安裝步驟:
1. sudo apt-get install sun-java6-jdk (取得java sdk環境)
2. sudo update-alternatives --config java (設定預設運行的java環境,選擇上一步安裝的java6)
3. 下載tomcat 6(連結)
4. sudo mv apache-tomcat-6.0.14.tar.gz /opt/ (將tomcat移至/opt/下,可自行選擇)
5. sudo tar zxvf apache-tomcat-6.0.14.tar.gz (將目錄改為tomcat6)
6. sudo vim /etc/profile (也可以加在家目錄下的.bashrc)
└ 加入此敘述export JAVA_HOME=/usr/lib/jvm/java-6-sun
7. 登出再登入
8. sudo /opt/tomcat6/bin/startup.sh
Using CATALINA_BASE: /opt/tomcat6
Using CATALINA_HOME: /opt/tomcat6
Using CATALINA_TMPDIR: /opt/tomcat6/temp
Using JRE_HOME: /usr/lib/jvm/java-6-sun
(成功訊息)
9. 從/opt/tomcat6/conf/server.xml中修改port(從8080改為80)
10.
sudo /opt/tomcat6/bin/shutdown.sh
11.
sudo /opt/tomcat6/bin/startup.sh
12. 連線到http://your-ip/
安裝完成後,預設的web存放位置為/opt/tomcat6/webapps/ROOT/,如需要改變預設路徑可透過/opt/tomcat6/conf/server.xml此檔改變。找到Host name並更改,如下~
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="ROOT";
crossContext="true">
</Context>
</Host>
改為:
<Host name="localhost" appBase="/home/username/www/"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase=".";
crossContext="true">
</Context>
</Host>
安裝MySQL 5.0
sudo apt-get install mysql-server (安裝完成後,會要求輸入password)
安裝JDBC
1. sudo apt-get install libmysql-java
2. sudo cp ./usr/share/java/mysql-connector-java-5.0.4.jar /opt/tomcat6/lib/ (粗體部份為Tomcat安裝路徑)
(重新啟動Tomcat將jdbc lib匯入)
3.
sudo /opt/tomcat6/bin/shutdown.sh
4.
sudo /opt/tomcat6/bin/startup.sh
測試JDBC(將下敘述加至*.jsp網頁中)
1.連線到mysql command
└ sudo mysql -p (-p為所輸入之root密碼)
2. 建立test資料庫
└ create database test;
3. show database
└ show databases;
4. 建立sa使用者,密碼為sa,權限為SELECT
└ GRANT SELECT ON *.* TO sa@localhost IDENTIFIED BY "sa";
5. 撰寫測試網頁
<%@ page contentType="text/html;charset=big5" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<% String DB_URL = "jdbc:mysql:///test"; String DB_User = "sa"; String DB_Password = "sa"; Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection con = DriverManager.getConnection(DB_URL, "sa", "sa"); %>
if(!con.isClosed())
System.out.println("Successfully connected !!" );
6. 連線到網頁進行測試。

2007年11月22日 星期四

Naming Conventions for Symbian

最近比賽告一段落了,要開始學習Symbian的學習,發現....還蠻多東西要看的,像是基本的Coding conventions更為重要啊。以下是在Symbain上Coding時需要注意的convention:

(此資料轉載於Blue119's blog)

Function Convention

  • Trailing "D" indicates the deletion of an object
  • Trailing "L" means function may leave
  • Trailing "C" means an item is placed on the cleanup stack

-------------------------------------------

Variable Convention

  • Member variables' names begin with 'i'
  • Arguments' names begin with 'a'
  • Automatics' (local variables) names have no initial letter, but start in lower case
  • Constants' names begin with 'K'
  • Global variables are usually avoided, but when used, their names begin with a capital letter.

-----------------------------------

Class Convention

'T' Classes

  • Classes that don't own external objects/resources and so can be declared on the stack 'T'types contain their value.
  • They do not own any external object, either directly (by pointer) or indirectly (by handle).
  • they do not need a destructor to cleanup resources.
  • 'T' types may be allocated either on the stack (that is locally as C++ automatic variables) or as members of other classes.
  • note that the default stack size is 8KB in Symbian OS.
  • Structure types mostly begin with 'T'.
'C' Classes
If a class needs to dynamically allocate any memory or own another class, it should derive, directly or indirectly, from CBase (a built-in Symbian OS class), and its class name should begin with 'C'. CBase-derived classes have the following properties:
  • They are allocated on the heap (dynamically allocated) — not on the stack, and not as members of other classes.
  • The allocator used for this class hierarchy initializes all member data to binary zeroes.
  • They are passed by pointer, or reference, and so do not need an explicit copy constructor or assignment operator unless there is clear intention that a particular class supports copying.
  • They have a virtual destructor, which is used for standard cleanup processing.
  • They support two-phased construction – this will be covered later in the section.
'R' Classes
These classes are used to access system resources, for example files, via handles. The following are characteristics of ‘R’ classes:
  • They contain a handle that is used to pass on requests to other objects.
  • They are opened using an "Open()" function particular to the ‘R’ class, and closed using a "Close()" function particular to the class. An ‘R’ object must be closed once if it has been opened.
  • They may be freely bit-wise copied.
  • They have no explicit constructor, destructor, copy constructor or assignment operator.
'M' Classes
Characteristic:
  • Abstract
  • Pure virtual functions
  • No member data
Purpose:
  • define an interface
Advantage:
  • reduce dependencies between classes
Rule:
  • the only use of multiple inheritance
  • A C class derive from one other C class and zero or more M classes
'M'classes have the following restrictions:
  • They should contain no member data.
  • They should not contain constructors or destructors, or overloaded operators.
'M' classes usually contain pure virtual functions that define a fully abstract interface.

轉載自Blue119's blog:Symbian Coding Conventions:Class

2007年11月16日 星期五

Applet資源取用問題

很久沒有寫Applet了,上次撰寫相關的程式應該是大學的時候吧!(約...三年前~)

最近因為比賽的關係,需要使用到Applet,只是沒想到...竟然無法在網頁上執行(使用appletviewer可以正常執行)。在網路上找尋相關的資料,發現原來我的程式有使用內部資源(像是圖片...),而Applet因為安全性的關係,需要做簽章(Signature)的動作才可以使用。

簽章方式:
1. 安裝JDK(這樣才會有keytool、jarsigner工具)
2. 產生jar
└ jar cvf file.jar test.class ※file.jar為產生jar檔案名稱
3. 利用keytool產生key(*.crt)
└ keytool -genkey -alias appletkey ※輸入簽章相關資訊(密碼、姓名...等)
└ keytool -export -alias appletkey -file appletkey.crt ※產生crt檔,檔名為apu.crt
4. 將jar進行簽證
└ jarsigner file.jar appletkey ※會要求輸入剛剛簽章時所用的密碼
5. 轉換html
└ htmlconverter
以上步驟1、3只需要做一次就可以,之後就重覆2、4步驟即可以。

簽章完成後,發現還是無法正確使用資源,原因目前還不清楚(或許是Applet是不允許使用者直接去存取硬碟的資料,而是要直接透過網路的方式下載)。但是如果不進行簽章的動作,連透過http的方式去使用資源,也是會出現access denied的錯誤。

在使用ImageIcon的方式使用圖片,一般會像以下例子去取用資源
ImageIcon img = new ImageIcon("/picture/1.png");
這樣的情況在Applet下,是會出現access denied的錯誤,所以要改成下列的方式去取用資源
URL url = new URL("http://localhost/1.png");
ImageIcon img = new ImageIcon(url);
相關資料參考
JDK Tools and Utilities
JavaWorld

2007年11月5日 星期一

簡轉繁的利器 for Firefox

最近蠻常在逛大陸簡體的網站,發現還是不習慣看簡體字,以前在使用IE時,都有方便轉換的工具,那在Firefox上呢?

在網路上搜尋了一陣子,發現"新同文堂"這套針對Firefox用戶開發的"簡→繁"或"繁→簡"的工具。使用者可以直接在瀏覽的網頁上,使用"右鍵→新同文堂→簡轉繁"就可以將正在瀏覽的簡體網頁轉換成繁體,覺得不錯用,推薦給有使用Firefox的人嘍!

安裝方式:
‧下載"新同文堂"
‧透過Firefox選單中,"檔案→開啟檔案"的方式執行下載的xpi檔。
‧安裝後,重開Firefox即可使用。

2007年10月24日 星期三

Nokia N95 not support "CameraControl"

沒想到Nokia N95竟然不支援CameraControl,都已經支援AMMS了,沒想到只有部份的packages可以正常使用,看來真的要朝Symbain C++邁進了!

AMMS中不支援的packages有:
  • javax.microedition.amms.control.camera

  • javax.microedition.amms.control.imageeffect

  • javax.microedition.amms.control.tuner

詳細資訊

Java ME Developer's Library 1.4

因為無法使用AMMS中camera的packages,導致無法調整J2ME在錄影時的畫質,看來只能使用176x144 15 fps的畫質來進行截取了.....

另外,在撰寫程式時發現,如果直接使用"capture://video"是可行的~
player = Manager.createPlayer("capture://video");
但要調整其編碼方式,如果直接將參數加在後面,在執行程式時會出現exception。例:
player = Manager.createPlayer("capture://video?encoding=3gpp");
or
player = Manager.createPlayer("capture://video?encoding=mp4");
但如果不要使用"capture://video",改為"capture://devcam0"的話就可以更改編碼方式,如下例:
player = Manager.createPlayer("capture://devcam0?encoding=video/mp4");


2007年10月12日 星期五

Samsung and Sun → Java Phone

  10/10時,Samsung和Sun宣怖要合作開發Java Phone與iPhone競爭手機的市場,而且將會比iPhone來的便宜,甚至功能會超越熱賣的iPhone。好奇的是為什麼會與Samsung合作呢?或許是因為Samsung在近幾年在3C產品的技術及創新,不斷的提升的關係吧;不過,根據報導Samsung將提供硬體上的支援,而Sun提供軟體上的技術,期待此合作的產品推出。

  其實Java Phone很早前就提出了(1998年時有提出Java OS與Java CPU),在2006年的JavaOne時,SavaJe這家公司提出了這項產品,或許大家會認為所謂的Java Phone與現在的Java手機game或是軟體有何差異?事實上,差異是很大的,普遍我們看到的Java手機都是在各家公司所研發的OS(Symbian, WinCE等)之上放置所謂的虛擬機器(JVM,手機上也有稱為KVM),而下載的Java遊戲則在此KVM上運行;而SavaJe所提出的Java Phone則擺脫其它的OS,直接將Java VM運行在硬體之上。
(註:SavaJe OS的廣義稱法是SavaJe Mobile Platform,過去手機用的SavaJe OS稱為SavaJe OS Smartphone Edition。)
2006年時JavaOne展示的Java Phone

2007年10月11日 星期四

Ubuntu Mouse "上一頁"功能設定

  最近買了一隻新的滑鼠,發現在Linux上無法像Windows直接可以使用上一頁的功能,造成瀏覽敗家相關網頁的不便。上網找了相關的資料,發現還蠻多資料可以參考,但是網路上大部份都是討論七鍵滑鼠的問題,而我使用的是Microsoft迷你鯊,只有提供六鍵沒有第七鍵。

  如果使用六鍵滑鼠的人,可以將/etc/X11/xorg.conf裡mouse相關設定改為(粗體部份):
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ExplorerPS/2"
Option "ButtonMapping" "1 2 3 7 6"
Option "ZAxisMapping" "4 5"
Option "Buttons" "7"
Option "Emulate3Buttons" "true"
EndSection
  上述設定中,ButtonMapping主要是將滑鼠的按鍵mapping到對應數值"1 2 3"分別對應"左 中 右"鍵,"6 7"對應的是滑鼠的"下一頁 上一頁",但是問題來了,因為我的滑鼠並沒有第七鍵的關係,所以必須要將"6 7"對調,變成如上述設定,這樣一來可以第六鍵才可以mapping到上一頁。另外"XAxisMapping"是設定滑鼠滾輪的按鍵。
PS. 如果將Option "Buttons" "7"中的數值改為6的話,滑鼠的上一頁鍵就會變成Button 9,所以才將數值設為7。

  另外如果要測試對應按鍵的數值,可以在使用"xev"指令進行滑鼠按鍵的監測。

2007年10月10日 星期三

Eclipse HotKey

把Eclipse覺得好用的HotKey列出來:

程式碼自動排版:Ctrl+Shift+F
└如果從另一地方複製的程式排版有問題時,可以透過此熱鍵進行自動排板。

編譯程式:Ctrl+B
└快速編譯目前project的程式

快速執行程式:Ctrl + F11
└快速執行目前project的程式

將選取的文字註解:Ctrl+/
└當用滑鼠選起的文字加上此熱鍵可以快速註解,很適合debug。

Template:Alt + /
└加快撰寫程式的速度,如當使用for+Alt + /時,會馬上將for迴圈的程式結構自動填上。如需要增加Template可以從Windows→Preferences...→Java→Editor→Template進行設定。

2007年10月7日 星期日

Serial Port Monitor相關軟體

最近又要開始接觸RFID相關的研究,發現Windows內建的超級終端機不大方便,用來解析16進位的資料並不好用,所以就搜尋網路上可以用的serial port軟體。

以下列了幾個不錯的監控軟體:

Free Serial Port Monitor
└ 提供免費版,但要全功能需要花錢註冊。

Advanced Serial Port Monitor
└
Advanced Serial Port

Access Port
└ 提供免費版,也有支援繁體中文喔。(推薦)
Access Port

Hinet hiChannel 無畫面問題

  因為新住的地方沒有電視的關係,所以都必需要透過網路的方式收看電視新聞,因為使用Hinet的ADSL也有免費的電視可看,所以就選擇使用hiChannel來收看,發現竟然無畫面有聲音,更新了Flash、Media Player也都沒有用,後來發現必需要設定Media Player裡面的設定,才可以正常收看。

進入Media Player→選項→效能→視訊加速(進階)

勾選"使用重疊"(藍框部份)
確定後,再重開一次就可以正常收看嘍。

2007年10月3日 星期三

J2ME開發相關資源

Forum Nokia Java Code and Exmple
└Nokia所提供的J2ME上開發的一些範例

MMAPI Support
└MMAPI在Nokia各手機支援多媒體的程度

Java ME Device Table
└查詢目前支援J2ME的手機所提供哪些profile

Eclipse
└開發Java的好工具

EclipseME
└開發J2ME的工具(plugin)

2007年10月1日 星期一

有關J2ME與Camera

最近在整理與評估J2ME與Symbian C++對於camera的支援程度,感覺還蠻多東西要survey的。

最近幾年新增的J2ME JSR,並找了之後camera會使用到的JSR

JSR-135 MMAPI (Mobile Media API)

JSR-234 高階多媒體補充AMMS (Advanced Multimedia Supplements)

JSR 226 延展性2D 向量圖應用程式 (Scalable 2D Vector Graphics API for J2ME)

目前確定的在MMAPI上N95目前可順利執行,且抓圖也正常。

JSR-234與JSR-226在N95上確定支援,似乎只有S60 3nd FP1的手機才支援(N80不支援)。不過也發現Sun也有提供J2ME Device Table讓使用者查詢手機支援JSR的程度。

Nokia N95支援的JSR Profile
CLDC 1.1 (basic)
MIDP 2.0
(basic)
M3DAPI 1.0
Scalable 2D Vector Graphics
MMAPI / JSR 135
Web Services
Bluetooth
Adv Multimedia Supp / JSR 234
Nokia UI API
SATSA
Location API
PDA Optional
WMA 2.0 / JSR 205
SIP API
JTWI
Nokia官方網站也有詳細N95的規格。

MMAPI抓取內置相機的方式
//利用Player去抓取內置相機路徑
Player player = Manager.createPlayer( "capture://video" );
※注意:如果要進行拍照, 且要輸出為jpeg格式時, 必需要將"capture://video"改為"capture://devcam0"才可正常在MIDlet上正確顯示
//初始化
player.realize();
//抓取Video control
VideoControl videoControl = (VideoControl) ( player.getControl("VideoControl") );
//設定Display mode
videoControl.initDisplayMode( VideoControl.USE_DIRECT_VIDEO, this );
//設定video顯示位置
videoControl.setDisplayLocation(x, y);
//設定video顯示大小
videoControl.setDisplaySize( Width, Height );

使用MMAPI錄音
//建立手機內置錄音的資料來源(DataSource)
Player p = Manager.createPlayer("capture://audio");
p.realize();
RecordControl rc = (RecordControl)p.getControl("RecordControl");
//設定儲存位置
rc.setRecordLocation("file:/tmp/audio.wav");
rc.startRecord(); //開始紀錄
p.start(); //錄音五秒
Thread.currentThread().sleep(5000);
p.stop(); //停止
rc.stopRecord(); //停止紀錄
rc.commit(); //完成
使用MMAPI拍一張照片
//從camera抓取一張照片, 如果傳入值設定為null時, 抓取格式為系統預設值.
byte[] pngImage = videoControl.getSnapshot( null );

也可以把null替換成下列格式,抓取所想要的圖片格式
encoding=gray8&width=160&height=120
encoding=jpeg&quality=80&progressive=true&type=jfif
(progressive JPEG with quality 80 in jfif format)
encoding=jpeg&type=exif
(JPEG in exif format)
encoding=png&colors=rgb888
(24 bits/pixel PNG)
encoding=rgb888
(raw 24-bit rgb image)
encoding=rgb&colors=rgb888
(raw 24-bit rgb image)

//example
byte[] pngImage = videoControl.getSnapshot( "encoding=png&colors=rgb888 " );

//最後再將取得的data建立成image, 並draw出來
Image image = Image.createImage(pngImage, 0, pngImage.length);
g.drawImage(image, 0 , 0 , 0);
以上階為程式片段。