【问题标题】:Android getSupportedVideoSizes always returns nullAndroid getSupportedVideoSizes 总是返回 null
【发布时间】:2012-12-25 04:06:05
【问题描述】:

我需要一些关于 Android 上的 MediaRecorder 类的帮助。

我尝试使用getSupportedVideoSizes 来获取支持的视频尺寸列表,但它总是返回 null。

在测试中,以下设备在查询getSupportedVideoSizes时返回null

  • Galaxy Nexus (Android 4.2)
  • HTC One Mini (Android 4.4.2)
  • HTCEVOV4G (Android 4.0.3)

【问题讨论】:

  • 这里有一些关于主题stackoverflow.com/questions/5934829/…的讨论。
  • 您好,感谢您的帮助,但不幸的是我看到了那个帖子。但是如何设置单独的预览和视频输出?这就是我无法理解的......因为他们都使用该函数 getSupportedVideoSizes 但对我来说它一直返回 null ...
  • 你看到 YShinkarev 留下的最后一条评论了吗?有人提到,在某些情况下,getSupportedVideoSizes 按设计返回 null。
  • 那么你的意思是这取决于手机?
  • 不幸的是,如果我正确理解文档,这是一个与硬件相关的决定是否默认返回 null。

标签: android mediarecorder android-mediarecorder


【解决方案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));

自动设置最佳分辨率。

【讨论】:

    猜你喜欢
    • 2012-12-05
    • 1970-01-01
    • 2014-12-31
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    相关资源
    最近更新 更多