我们知道,当相机预览比率设为4:3
而不是16:9
时,我们会在同一距离获得更大的预览区域,详情如下:
Android Camera API - Weird zoom effect
但是当我使用opengl使用android相机预览时遇到了问题,这是下面提到的第二种方式。
有两种实现相机预览的方法:
Camera.setPreviewTexture(SurfaceTexture texture)
或Camera.setPreviewDisplay(SurfaceHolder holder)
ContinuousCaptureActivity
使用opengl的方式,我们使用API swapBuffers()
渲染预览图片。第一种方法是好的,如果预览比例从16:9变为4:3,我会发现预览字段会变大。
然而,第二种方式在一些Android手机中不行,当预览比率改变时预览字段保持不变,并且预览字段小于比率4:3的第一路。 我坚持认为这是一个错误,我想非常好地解决这个问题,谁可以给我一些建议?
答案 0 :(得分:3)
经过一番奋斗,我终于找到了确切原因,它是API Camera.Parameters.setRecordingHint(true)
当我在源代码中删除此子句时,预览字段变得正常。
总之,API Camera.Parameters.setRecordingHint(true)
是某些Android设备中的错误。
对于某些设备,如果预览比率设置为4:3(使用API Camera.Parameters.setPreviewSize(int,int)),则调用API setRecordingHint(true)将导致相机预览字段变小。