如何在Android 7中限制MediaStore的持续时间

4

Android 7的MediaStore持续时间限制有什么新变化?文档中没有关于此的说明,但从sdk版本24开始,设备可以录制无限时长的视频。

final Activity activity = (Activity) context;
String controlId = videoInput.getControlId();
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
if (videoInput.getMaxDuration() > 0) {
    intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, videoInput.getMaxDuration());
}
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, videoInput.getRecordQuality().ordinal());
int requestCode = ActivityResultBus.getInstance().generateRequestCode(new SBundle(controlId));
activity.startActivityForResult(intent, requestCode);

我在一台安装有Android 7.0的Motorola Nexus 6设备和虚拟设备上进行了测试,其中包括7.0和7.1.1版本。在之前的版本中都能够按照我的期望工作。

可能是我的"extras"捆绑包出了什么问题?enter image description here


//在之前的版本中,一切都按照我的意愿运作。// 这非常不清楚,我们不知道你想要什么。请清楚地解释你遇到的问题以及期望的输出。 - Darshan Miskin
我想限制视频的时长。我按下“录制”按钮,录制会在2秒钟内停止。 - Anton Chukanov
你所遇到的问题只出现在API 24上吗? - Darshan Miskin
仅适用于 API 24 和 25。 - Anton Chukanov
在API 24和25上,您得到了什么值videoInput.getMaxDuration()。这是正确的吗? - Darshan Miskin
请查看此问题并阅读由commonsware提供的评论:https://dev59.com/t5bfa4cB1Zd3GeqPvIu5 - YakuZa
1个回答

0

没有任何相机应用程序需要遵守EXTRA_DURATION_LIMIT。这只是一个请求,而不是命令。

还有其他方法来限制视频长度吗?

如果您将工作委托给第三方应用程序,则无法限制视频长度。您可以使用相机API直接自行录制视频。或者,如果您关心的不是设备上的视频,而是需要上传的某个子集,请查看如何剪切视频的前10秒,并上传该片段。

此答案直接从此问题编译:MediaStore.EXTRA_DURATION_LIMIT Not working Nexus Devices?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接