android - 在 Android MediaStore.EXTRA_DURATION_LIMIT 中无法在 6.0 及更高版本的设备中工作

标签 android video video-capture android-video-player

我使用的是 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/

相关文章:

android - Unity3d FB.canvas.pay Android 和 iOS 的替代方案

android - 如何在字符串资源中使用十进制数(Double 数据类型)作为占位符

php - 无法从 YouTube 视频对象获取视频标题

video - VLC 输出到 DirectShow 源过滤器

android - 如何从 Android 中的最终用户设备获取日志文件?

android - Kotlin if 语句即使在 false 时也执行

HTML5 视频自动播放但有 5 秒的延迟

ios - AVCapturesession - 捕获视频、麦克风和背景音频

javascript - rtcpeerconnection 跟踪事件有时返回空流

ios - 运行iOS4 +的iPhone上的视频捕获API是否可以实时编码视频?