gpt4 book ai didi

java - SurfaceView 正在侧向显示摄像头画面

转载 作者:行者123 更新时间:2023-11-30 04:51:11 27 4
gpt4 key购买 nike

由于某种原因,我的程序中的摄像头画面是横向的。如果我从底部将手指放在相机上,它会在表面 View 中显示为来自右侧。

我有一个非常标准的实现

    surfaceView = (SurfaceView)findViewById(R.id.surfaceView);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(surfaceCallback);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

我环顾四周,但我似乎无法找到这方面的任何信息。我的设备是 nexus One。

编辑:如果我将屏幕方向设置为横向,那么由于某种原因它可以正常工作......但无法以纵向显示。

最佳答案

预览显示图像的方向由Camera.setDisplayOrientation(int)控制方法。对于我的 Evo,将方向设置为 90 可使预览显示适合纵向模式。

...
camera.setParameters(parameters);
camera.setDisplayOrientation((orientation+90)%360);
camera.startPreview();
...

好像在预览开始后改变方向会导致异常。如果您更改手机/设备的旋转方式,将再次调用 SurfaceHolder.surfaceChanged 回调,如果您在该回调中执行 setDisplayOrientation 和 startPreview,则会出现异常。我要尝试停止预览,然后更改方向,然后重新开始。

注意:还有 Camera.Parameters.setRotation(int)方法,(我认为)在拍摄照片时将其写入(JPEG)输出图像时会改变图像的方向。该方法不改变预览显示方向。

关于java - SurfaceView 正在侧向显示摄像头画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3283352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com