2014-08-28 61 views
1

我正在製作一個相當專業的相機應用程序,這個應用程序實際上總是以橫向方式進行。部分規範是它必須能夠以縱向預覽和拍照 - 請參閱下圖。設備處於橫向拍攝時拍攝人像的任何問題?

我遇到了運行時異常「setParameters failed」的問題(作爲對camera.setParameters()調用的迴應),我只想在這裏檢查是否存在一些基本問題,您認爲我可能會遇到。例如,照相機背面的光線傳感器可能是一個矩形,物理上無法實現 - 或者是其他一些不可避免的問題。 (順便說一下,我已經知道,光傳感器應該安排在一個正方形,所以這個問題不會發生 - 但我的來源可能會錯誤)。也許這是硬件依賴的?

enter image description here

編輯: FYI我崩潰日誌低於:

D/AndroidRuntime(7210): Shutting down VM 
W/dalvikvm(7210): threadid=1: thread exiting with uncaught exception (group=0x415c2d88) 
E/AndroidRuntime(7210): FATAL EXCEPTION: main 
E/AndroidRuntime(7210): Process: com.rai.motion, PID: 7210 
E/AndroidRuntime(7210): java.lang.RuntimeException: Unable to resume activity {com.rai.motion/com.rai.motion.MotionMain}: java.lang.RuntimeException: setParameters failed 
E/AndroidRuntime(7210):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2850) 
E/AndroidRuntime(7210):  at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2879) 
E/AndroidRuntime(7210):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2303) 
E/AndroidRuntime(7210):  at android.app.ActivityThread.access$800(ActivityThread.java:144) 
E/AndroidRuntime(7210):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246) 
E/AndroidRuntime(7210):  at android.os.Handler.dispatchMessage(Handler.java:102) 
E/AndroidRuntime(7210):  at android.os.Looper.loop(Looper.java:212) 
E/AndroidRuntime(7210):  at android.app.ActivityThread.main(ActivityThread.java:5151) 
E/AndroidRuntime(7210):  at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(7210):  at java.lang.reflect.Method.invoke(Method.java:515) 
E/AndroidRuntime(7210):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 
E/AndroidRuntime(7210):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
E/AndroidRuntime(7210):  at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(7210): Caused by: java.lang.RuntimeException: setParameters failed 
E/AndroidRuntime(7210):  at android.hardware.Camera.native_setParameters(Native Method) 
E/AndroidRuntime(7210):  at android.hardware.Camera.setParameters(Camera.java:1689) 
E/AndroidRuntime(7210):  at com.rai.motion.MotionMain.change_java_recording_camera_settings(MotionMain.java:2105) 
E/AndroidRuntime(7210):  at com.rai.motion.MotionMain.start_recording_camera(MotionMain.java:2154) 
E/AndroidRuntime(7210):  at com.rai.motion.MotionMain.onResume(MotionMain.java:6013) 
E/AndroidRuntime(7210):  at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1192) 
E/AndroidRuntime(7210):  at android.app.Activity.performResume(Activity.java:5310) 
E/AndroidRuntime(7210):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2840) 
E/AndroidRuntime(7210):  ... 12 more 
I/Process(7210): Sending signal. PID: 7210 SIG: 9 
+0

也添加你的「例外」。 – RobinHood 2014-08-28 13:11:09

+0

請參閱編輯至OP。 – Mick 2014-08-28 13:16:24

回答

2

我剛纔做了一個小相機測試應用程序。這是沒有問題的,以縱向模式顯示相機預覽,而設備處於橫向模式。以相對角度旋轉相機圖像非常棘手(因爲此旋轉角度取決於設備/相機)。然而,一個問題是,這個觀點與當時的觀點不符:對象似乎變得更胖或者拉長了。但要找出重算算法不應該佔用太多時間在Stackoverflow上。

所以關於

我只是想在這裏檢查是否有一些根本的問題 你認爲我可能會起來反對。

實際上這不能實現 - 或者可能是其他一些不可避免的問題。

答案是:這是一個可行的任務。你的例外可能有一個完全不同的原因。

+0

我不太確定,看到這個:http://stackoverflow.com/questions/25568421/how-to-take-a-portrait-photo-when-device-is-in-landscape – Mick 2014-08-29 13:59:39