我们知道,当摄像机预览比率设置为4:3而不是16:9时,将在相同距离处获得更大的预览字段,详细信息如下:

Android Camera API - Weird zoom effect

但是当我使用opengl处理android相机预览时遇到了一个问题,这是下面提到的第二种方法。

有两种实现相机预览的方法:


没有opengl的传统方式,只需使用Camera.setPreviewTexture(SurfaceTexture texture)Camera.setPreviewDisplay(SurfaceHolder holder)
使用opengl的ContinuousCaptureActivity方法,我们使用API​​ swapBuffers()渲染预览图像。


第一种方法是可以的,如果预览比例从16:9更改为4:3,我会发现预览字段变大。

但是,第二种方法在某些android手机中不能正常运行,当预览比例更改时,预览字段保持不变,并且预览字段以4:3的比例小于第一种方法。
我坚持认为这是一个错误,我非常想解决这个问题,谁能给我一些建议?

最佳答案

经过一番努力,我终于找到了确切的原因,这是API Camera.Parameters.setRecordingHint(true)

当我在源代码中删除此子句时,预览字段变得正常。

简而言之,API Camera.Parameters.setRecordingHint(true)是某些Android设备中的错误。

对于某些设备,如果预览比例设置为4:3(使用API​​ Camera.Parameters.setPreviewSize(int,int)),则调用API setRecordingHint(true)将导致相机预览的字段变小。

08-17 10:47
查看更多