【问题标题】:How to keep cwac video preview aspect ratio consistent between pre and during recording如何在录制前和录制期间保持 cwac 视频预览宽高比一致
【发布时间】:2024-01-07 03:51:02
【问题描述】:

我正在使用带有useFullBleedPreview() == true 的android 上的cwac-camera 库。 当我开始录制视频时,预览的纵横比会发生变化。即使在我停止录制直到我重新启动/重新加载相机片段后,它也会保持这种状态。

有没有办法让预览的纵横比在非录制和录制之间保持一致?

如果没有,有没有办法在录制开始之前设置启用/禁用视频录制预览纵横比?这样我就可以有一个视频模式来改变预览的纵横比,并且用户可以提前看到录制过程中的预览。

使用 6.2 版的库

【问题讨论】:

    标签: android android-camera video-capture commonsware-cwac


    【解决方案1】:

    有没有办法让预览的纵横比在非录制和录制之间保持一致?

    您的问题是this issue 的变体。目前没有已知的解决方法,但我希望我在 0.7 中所做的一些更改会有所帮助。

    如果没有,有没有办法在录制开始之前设置启用/禁用视频录制预览纵横比?

    我不知道。

    【讨论】:

    • 关于 0.7 何时发布的任何估计?
    • @MikeT:8 月底或 9 月初。
    • 查看我找到的解决方案。
    【解决方案2】:

    不知道这是否完全正确,但这似乎为我解决了问题。 (需要在更多设备上测试):

    在扩展SimpleCameraHost 或实现CameraHost 的类中添加以下内容:

    @Override
    public Camera.Size getPreferredPreviewSizeForVideo(int displayOrientation, int width, int height, Camera.Parameters parameters, Camera.Size deviceHint) {
        return CameraUtils.getOptimalPreviewSize(displayOrientation, width, height, parameters);
    }
    

    【讨论】:

    • “不知道这是否完全正确”——如果它有效,那完全是偶然的,将不适合大多数同时进行静态照片和视频录制的应用程序(需要更大的图片尺寸),并且可能不适用于所有设备。
    • 我将它更新为 getOptimalPreviewSize 似乎也可以。如果我使用 GetLargestSize,我会得到 setParameters failed RuntimeException。如果我使用 BestAspectRatio,预览图像会被拉伸。
    • “我将它更新为 getOptimalPreviewSize,它似乎也能正常工作”——这也是根据情况,可能不适用于所有设备。基本上你所做的是注意到你的墙上有一个洞,移动一张图片挂在洞上,然后得出结论,墙上的所有洞都可以通过用图片覆盖洞来解决。这可能会解决你的漏洞,也可能会解决其他人的漏洞。但是,如果一条鲨鱼闯入你的墙,你需要一个更大的画面。 :-)
    • 我明白 :) 不完美,但至少我在鲨鱼身上放了一些兔子耳朵。 (它看起来比没有它更好)。