如何在 Android 7 中限制 MediaStore 的持续时间
How to limit duration of MediaStore in Android 7
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 的真实摩托罗拉 Nexus 6 以及装有 7.0 和 7.1.1 的虚拟设备上进行了测试。在以前的版本中,一切都按我的意愿工作。
Mb 我的 extras
包有问题吗?
"There is no requirement for any camera app to honor EXTRA_DURATION_LIMIT. This is a request, not a command"
还有其他限制视频长度的方法吗?
当您将工作委托给第三方应用程序时则不然。欢迎您使用相机API,自己直接录制视频。或者,如果您关心的不是设备上的视频,而是您需要上传的某些子集,请研究如何切掉视频的前 10 秒,然后上传该片段。
这个答案是直接从这个问题编译而来的:MediaStore.EXTRA_DURATION_LIMIT Not working Nexus Devices?
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 的真实摩托罗拉 Nexus 6 以及装有 7.0 和 7.1.1 的虚拟设备上进行了测试。在以前的版本中,一切都按我的意愿工作。
Mb 我的 extras
包有问题吗?
"There is no requirement for any camera app to honor EXTRA_DURATION_LIMIT. This is a request, not a command"
还有其他限制视频长度的方法吗?
当您将工作委托给第三方应用程序时则不然。欢迎您使用相机API,自己直接录制视频。或者,如果您关心的不是设备上的视频,而是您需要上传的某些子集,请研究如何切掉视频的前 10 秒,然后上传该片段。
这个答案是直接从这个问题编译而来的:MediaStore.EXTRA_DURATION_LIMIT Not working Nexus Devices?