2014-10-08 31 views
1

我正在製作一個應用程序,它使用相機。當它啓動時,它會執行代碼來檢查攝像機的功能。一張支票我做的是以下幾點:setParameters在設置棕褐色時失敗,但縮放正常工作

List<String> supported_colour_effects_list = java_recording_camera_parameters.getSupportedColorEffects(); 

    Mylog("There are "+supported_colour_effects_list.size()+" supported colour effects"); 
    for (int i = 0;i < supported_colour_effects_list.size();i++) 
    { 
     Mylog("Colour effect: ["+supported_colour_effects_list.get(i)+"]"); 
    } 

當此代碼執行時,我看到下面的輸出:

I/xx(11517): There are 12 supported colour effects 
I/xx(11517): Colour effect: [none] 
I/xx(11517): Colour effect: [mono] 
I/xx(11517): Colour effect: [negative] 
I/xx(11517): Colour effect: [solarize] 
I/xx(11517): Colour effect: [sepia] 
I/xx(11517): Colour effect: [posterize] 
I/xx(11517): Colour effect: [whiteboard] 
I/xx(11517): Colour effect: [blackboard] 
I/xx(11517): Colour effect: [aqua] 
I/xx(11517): Colour effect: [emboss] 
I/xx(11517): Colour effect: [sketch] 
I/xx(11517): Colour effect: [neon] 

然後程序繼續進行,我可以看到的攝像頭看到的連續預覽。如果我按一個按鈕來煽動下面的代碼...

java_recording_camera_parameters.setZoom(75); 
    java_camera_for_recording.setParameters(java_recording_camera_parameters); 

然後一切工作完全符合預期,你可以看到預覽圖像突然進行放大。位如果我換行java_recording_camera_parameters.setZoom(75);java_recording_camera_parameters.setColorEffect(Camera.Parameters.EFFECT_SEPIA);然後,當我按同樣的按鈕,然後我得到以下錯誤...

W/System.err(4128): java.lang.RuntimeException: setParameters failed 
W/System.err(4128):  at android.hardware.Camera.native_setParameters(Native Method) 
W/System.err(4128):  at android.hardware.Camera.setParameters(Camera.java:1551) 

我不知道爲什麼。

回答

1

這是它是如何工作的(或不)。在某些設備上,一些聲明爲支持的設置失敗。有時候它會因RuntimeException而失敗,但通常是 - 靜默地:您在Galaxy Nexus上將預覽大小設置爲320x240,但回調會帶回VGA幀。

某些設置與其他設置不兼容:可能是Sepia與預覽尺寸不兼容,或者必須在預覽停止時設置。

一個很好的測試就是看看你是否可以在同一設備上的內置相機應用中選擇棕褐色。

+1

聽起來就像你在痛苦的經歷中說話! – Mick 2014-10-08 13:25:46

+0

是的,剛剛測試過 - 內置相機應用程序也會在設置棕褐色時崩潰! – Mick 2014-10-08 14:14:36

+0

那是哪個設備? – 2014-10-08 14:49:22

相關問題