我正在为一台设备制作一个相当专业的相机应用程序,该设备在物理上始终会以横向放置。规范的一部分是它必须能够以纵向预览和拍照 - 请参见下图。
我遇到了运行时异常“setParameters failed”(响应对 camera.setParameters()
的调用)的一些问题,我只是想在这里检查是否存在一些基本问题你认为我可能会反对。例如,相机背面的光传感器可能排列成矩形,但实际上这是无法实现的——或者可能是其他一些不可避免的问题。 (顺便说一句,我被告知光传感器应该排列成正方形,所以不会出现这个问题——但我的消息来源可能是错误的)。也许这取决于硬件?
编辑:仅供引用,我的崩溃日志如下:
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
最佳答案
我前段时间做了一个小相机测试应用。没问题,在设备处于横向模式时以纵向模式显示相机预览。将相机图像旋转直角很棘手(因为这个旋转角度取决于设备/相机)。然而,一个问题是,当时的视角不匹配:对象似乎更胖或被拉长了。但是在 Stackoverflow 上找出重新计算的算法应该不会花费太多时间。
所以关于
I just wanted to check here whether there was some fundamental problem that you think I might be up against.
[...]and physically this can not be achieved - or perhaps some other unavoidable issue.
答案是:这是一项可行的任务。您的异常可能有完全不同的原因。
关于android - 当设备处于横向时拍摄人像照片有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25549561/