我使用的是 LG Nexus(6.0)。当我使用相机使用以下代码捕获视频时。
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO);
// set video quality
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 30);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
我使用下面的代码给出了它的持续时间限制。
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 30);
相机似乎忽略了持续时间限制。在任何 6.0 设备上,它都不起作用。是否有另一种方法可以限制 6.0 及更高版本设备上的捕获视频持续时间?
最佳答案
The camera seems to ignore the duration limit. On any 6.0 device it does not work.
大约有 20 亿台 Android 设备,分布在来自数百家制造商的数千种设备型号中。这些设备将有数百种不同的预装相机应用程序,以及可能由用户安装的相机应用程序。它们中的任何一个都可以响应 ACTION_VIDEO_CAPTURE
请求,并且它们中的任何一个都可能有错误。此问题与 Android 操作系统版本无关。
Is there a other way to limit the capture video duration on 6.0 + devices?
不适用于 ACTION_VIDEO_CAPTURE
。您将工作委托(delegate)给第三方应用程序,该应用程序可以做任何它想做的事情。
如果您想要完全控制,请直接在您自己的代码中或通过某些第三方库使用 MediaRecorder
。
关于android - 在 Android MediaStore.EXTRA_DURATION_LIMIT 中无法在 6.0 及更高版本的设备中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44802603/