Android Camera2 API质量问题

时间:2018-02-28 16:16:29

标签: android android-camera2

我目前正在整理一个记录视频的应用。目标硬件支持1080p @ 30fps。当我从原生相机应用程序录制视频时,我会得到一些漂亮的1080p视频@ 30fps。

但是,在我的应用中,我加载了QUALITY_HIGH个人资料...

CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);

profile.videoFrameWidth = 1920

profile.videoFrameHeight = 1080

mMediaRecorder.setVideoSize(profile.videoFrameWidth, profile.videoFrameHeight);

然后我得到了这个错误...

Surface with size (w=1920, h=1080) and format 0x1 is not valid, size not in valid set: [1280x960, 1280x720, 960x720, 960x540, 864x480, 720x480, 768x432, 640x480, 320x240, 176x144]

有谁知道为什么Camera2 API似乎阻止我使用手机的全部潜力?

1 个答案:

答案 0 :(得分:1)

最有可能的是,通过camera2 API报告的摄像头处于LEGACY级别;这意味着它们通过Android相机HAL(硬件抽象层)旧版本之上的兼容层运行。

由于旧HAL和camera2之间存在差异,某些用例可能会降低此兼容模式下的功能。

由于camera2对于给定格式的所有用例需要相同的分辨率集,因此如果用于视频录制,则不会显示大小。不幸的是,传统的HAL可能会发生这种情况。

在此类设备上,您可能必须使用已弃用的相机API来访问可用的最大分辨率。