在Android MediaStore.EXTRA_DURATION_LIMIT中不能在6.0及更高版本的设备中使用

San*_*ani 5 video android 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); 
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码给出了它的持续时间限制。

    intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 30);
Run Code Online (Sandbox Code Playgroud)

相机似乎忽略了持续时间限制。在任何6.0设备上,它均不起作用。还有另一种方法来限制6.0 +设备上的捕获视频持续时间吗?

Com*_*are 5

相机似乎忽略了持续时间限制。在任何 6.0 设备上它都不起作用。

大约有 20 亿 Android 设备,分布在来自数百家制造商的数千种设备型号中。这些设备将预装数百种不同的相机应用程序,以及用户可能安装的相机应用程序。它们中的任何一个都可以响应ACTION_VIDEO_CAPTURE请求,并且它们中的任何一个都可能有错误。此问题与 Android 操作系统版本无关。

是否有其他方法可以限制 6.0 + 设备上的捕获视频持续时间?

不与ACTION_VIDEO_CAPTURE。您正在将工作委托给第三方应用程序,该应用程序可以为所欲为。

如果您想要完全控制,请MediaRecorder直接在您自己的代码中或通过某些第三方库使用 。