2010-02-15 64 views
0

我有這樣一段代碼:獲取快照產生總是相同的值

byte[] snap = ((VideoControl) player).getSnapshot("encoding=jpeg"); 

,其從照相機得到的快照。現在,經過一些處理後,它會產生正確的圖像。奇怪的是,當我調試這行代碼時,即使結果圖像不同,它在字段中的值也始終相同。任何想法爲什麼?

問候修剪

回答

0

經過大量的搜索後,我發現我錯了,我很抱歉誤導的問題。但是,使用encoding = jpeg時,這些數組真的只有一小部分不同,但是使用其他編碼他們確實存在很大差異。再一次,當我沒有先確認這個問題時,我很抱歉這個問題。

1

確保您查看的數據是數組,而不是數組的內存地址(這並不一定需要改變)內。

我希望這有助於

好運

+0

很好的答案!不會想到那個。儘管爲什麼有人會在看像字節數組的內存地址,比如說我會跳動。 – funkybro

+0

有趣的想法,但不是這種情況。謝謝。 – Trimack

0

確定getSnapshot()返回一個VideoControl對?仔細檢查一下。

+0

我錯過了帖子中的括號。 VideoControl實例返回字節數組(http://java.sun.com/javame/reference/apis/jsr135/javax/microedition/media/control/VideoControl.html#getSnapshot(java.lang.String)) – Trimack

1

也許需要一些清晰度......什麼'領域'具有'相同的價值'?

聽起來就像是將字節數組轉換成圖像。然後,當你再次調用getSnapshot時,你會得到相同的字節數組,但不同的圖像?

也許試試getSnapshot(null)。

喜歡的東西:

 byte[] data = null; 

     try { 
      data = video.getSnapshot(null); 
     } catch (MediaException ex) { 
      ex.printStackTrace(); 
     } 

     if(data != null) 
     { 
      img = Image.createImage(data, 0, data.length); 
     } 

你怎麼樣 '調試'?仿真器?設備上的?什麼設備?

上述代碼適用於K800i。