2013-01-14 66 views
3

我有一個使用相機功能的黑莓APP。科爾多瓦Phonegap相機getpicture不能在與DATA_URL選項的BlackBerry上工作

代碼庫來自內的PhoneGap 2.3.0

提供的 「示例應用程序」 的索引HTML已線加入

<input type="button" value="Take Picture" onclick="app.takePhoto();" /> 

的index.js具有的功能添加:

takePhoto: function(){ 
    navigator.camera.getPicture(this.cameraSuccess, 
           this.cameraError, 
           { quality: 50, 
            destinationType: Camera.DestinationType.DATA_URL 
           }); 
}, 
cameraSuccess: function(imageData){ 
    console.log(imageData); 
    var image = document.getElementById('myImage'); 
    image.src = "data:image/jpeg;base64," + imageData; 
}, 
cameraError: function(){ 
    alert("error!"); 
} 

如果我運行波紋模擬器,在鉻的錯誤控制檯讀取:

Received Event: deviceready cordova-2.3.0.js:8165 
Received Event: deviceready ripple.js:39 
blob:http%3A//localhost/1b218c8e-6902-4780-a652-8f7f4d52fe28 cordova-2.3.0.js:8165 
blob:http%3A//localhost/1b218c8e-6902-4780-a652-8f7f4d52fe28 ripple.js:39 
GET data:image/jpeg;base64,blob:http%3A//localhost/1b218c8e-6902-4780-a652-8f7f4d52fe28 

如果我運行模擬器,增加圖像的相機數據後,我得到一個錯誤彈出錯誤日誌中寫道:

1:01:16.054: cordovaExample [2013-01-14 18:55:03.858]: Error in error callback: Camera1387674010 = ReferenceError: Can't find variable: imageData 

當我在設備上運行,我真的不知道怎麼樣讀取錯誤輸出。

根據我所展示的內容,爲什麼我的手機差距應用程序未在黑莓手機上拍照?

回答

4

Phonegap DestinationType.DATA_URL選項在某些BB設備(主要是較新的設備)上無法正常工作。由於現代手機(如BB 9800)具有更好的相機,因此它們也會生成更大的圖片,因此將它們轉換爲BASE64字符串可能會導致內存問題並導致imageData變量空。

您可以通過降低測試targetWidthtargetHeight。如果它在較低的分辨率下工作,那麼這是你的問題。

它可以通過使用FILE_URI而不是DATA_URL來解決。但是你應該試試它。

如果FILE_URI不工作,那麼問題是在BB相機。

+1

這是正確的!謝謝 :) –

相關問題