Android getSupportedVideoSizes 总是返回 null
Posted
技术标签:
【中文标题】Android getSupportedVideoSizes 总是返回 null【英文标题】:Android getSupportedVideoSizes always returns null 【发布时间】:2012-12-25 04:06:05 【问题描述】:我需要一些关于 android 上的 MediaRecorder
类的帮助。
我尝试使用getSupportedVideoSizes
来获取支持的视频尺寸列表,但它总是返回 null。
在测试中,以下设备在查询getSupportedVideoSizes
时返回null
:
【问题讨论】:
这里有一些关于主题***.com/questions/5934829/…的讨论。 您好,感谢您的帮助,但不幸的是我看到了那个帖子。但是如何设置单独的预览和视频输出?这就是我无法理解的......因为他们都使用该函数 getSupportedVideoSizes 但对我来说它一直返回 null ... 你看到 YShinkarev 留下的最后一条评论了吗?有人提到,在某些情况下,getSupportedVideoSizes
按设计返回 null。
那么你的意思是这取决于手机?
不幸的是,如果我正确理解文档,这是一个与硬件相关的决定是否默认返回 null。
【参考方案1】:
The documentation for Camera.getSupportedVideoSizes()
读取,
退货 如果相机具有单独的预览和视频输出,则为 Size 对象列表;否则返回null。
并不完全清楚。但是,这意味着如果Camera.getSupportedVideoSizes()
返回null,那么相机支持的预览尺寸和视频尺寸是一样的;在这种情况下,要获取支持的视频尺寸列表,请使用Camera.getSupportedPreviewSizes()
。
示例代码:
public List<Size> getSupportedVideoSizes(Camera camera)
if (camera.getParameters().getSupportedVideoSizes() != null)
return camera.getParameters().getSupportedVideoSizes();
else
// Video sizes may be null, which indicates that all the supported
// preview sizes are supported for video recording.
return camera.getParameters().getSupportedPreviewSizes();
【讨论】:
android 文档中的描述简直荒谬! 很好的答案和解释...这是一个很容易被忽视的小问题,尤其是当您的开发设备返回 getSupportedVideoSizes() 列表时。结果是三星和其他人返回 null,所以我的应用程序不得不猜测要使用的图片大小,这导致所有设备都不支持设置。现在,当使用 getSupportedPreviewSizes() 处理 null 情况时,它工作得很好。 荒谬的文档需要这种令人敬畏的挖掘。谢谢+1 ;)【参考方案2】:或者直接使用
mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
自动设置最佳分辨率。
【讨论】:
以上是关于Android getSupportedVideoSizes 总是返回 null的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )