android - 当设备处于横向时拍摄人像照片有问题吗?

标签 android camera

我正在为一台设备制作一个相当专业的相机应用程序,该设备在物理上始终会以横向放置。规范的一部分是它必须能够以纵向预览和拍照 - 请参见下图。

我遇到了运行时异常“setParameters failed”(响应对 camera.setParameters() 的调用)的一些问题,我只是想在这里检查是否存在一些基本问题你认为我可能会反对。例如,相机背面的光传感器可能排列成矩形,但实际上这是无法实现的——或者可能是其他一些不可避免的问题。 (顺便说一句,我被告知光传感器应该排列成正方形,所以不会出现这个问题——但我的消息来源可能是错误的)。也许这取决于硬件?

enter image description here

编辑:仅供引用,我的崩溃日志如下:

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/

相关文章:

android - 在 GridView 中膨胀 FrameLayout 时出现 ClassCastException

android - 相机拍摄图像后,Phonegap 应用程序退出。 [安卓]

ios - 在条形码扫描仪应用程序 (Swift 3) 中的相机 View 上添加对象

android - 在 Android 中,是否可以更改相机(从前到后)并继续录制?

linux - 在 RPI-3B+ 中安装 OV7251 驱动程序以与 ROS 一起使用

javascript - 立即使用 stackNavigator 和 tabNavigator 无法正常工作 React Native

Android ProgressBar 从非 Activity 类开始

c# - 使用 Google Play 服务在 Xamarin 中获取用户位置

iphone - UIImagePickerControllerSourceTypeCamera 的父 View 问题

java - 我如何在触摸时启动动画,该动画将在到达 Sprite 表末尾后停止?