在Lenovo Tab4 8上以720p录制

时间:2018-10-26 13:23:35

标签: android camera resolution tablet preview

我有一个正在运行的视频应用程序,它为7.0及更高版本的许多Android平板电脑(除了Lenovo Tab4 8以外)稳定地以1280x720录制视频。

使用Camera2 API,我通过查询支持的预览尺寸来设置捕获。 令人惊讶的是,联想Tab4 8仅返回以下预览尺寸:

  

1040x780、864x480、640x640、800x480、720x480、768x432、640x480,   480x640、576x432、640x360、480x360、480x320、384x288、352x288,   320x240、240x320、240x160、176x144、144x176、160x120

但是内置摄像机支持1280x720甚至1920x1080。简单地尝试将分辨率或预览大小设置为1280x720会导致错误。 android.hardware.camera2.CameraAccessException: CAMERA_ERROR (3): submitRequestList - must configure device with valid surfaces before submitting requests

其他相机应用程序如何处理呢?我从Playstore下载了“ Open Camera”。它可以选择以1280x720拍摄(而不是1040x780?!)。

1 个答案:

答案 0 :(得分:0)

我发现是什么原因造成的。 该Lenovo平板电脑具有“旧版相机”,这意味着相机是为提供相机API而没有相机2 API而创建的。

在这种情况下,Camera2 API只是Camera API的包装,但是无法公开所有功能,因此缺少对某些分辨率的支持。

通过以下呼叫,我现在可以确定我的设备是否驻留在旧相机中:

Xamarin.Android:

CameraCharacteristics characteristics = camManager.GetCameraCharacteristics(cameraId);
var hardwareLevel = characteristics.Get(CameraCharacteristics.InfoSupportedHardwareLevel);

//hardwareLevel.ToString() would spit out one of the following numbers:
//LEGACY - 2 -> Legacy Cameras might not support 1280x720 resolution
//LIMITED - 0
//FULL - 1
//LEVEL_3 - 3