【问题标题】:MediaStore.EXTRA_VIDEO_QUALITY not working for Android Video CaptureMediaStore.EXTRA_VIDEO_QUALITY 不适用于 Android 视频捕获
【发布时间】:2018-08-30 18:06:18
【问题描述】:

我正在开发从 Camera Intent 录制视频的应用程序。在我的三星手机上MediaStore.EXTRA_VIDEO_QUALITY 正在工作,甚至我分配的内存大小也可以工作,但在我的 Google Pixel 上的相同应用程序 MediaStore.EXTRA_VIDEO_QUALITY 无法工作,甚至分配的内存大小也不适用于相机意图。

我的代码如下:

public void takeVideoFromCamera(){

        File mediaFile =new File(Environment.getExternalStorageDirectory().getAbsolutePath()+ "/myvideo.mp4");
        Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
        Uri videoUri;

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
//            videoUri = FileProvider.getUriForFile(this, this.getApplicationContext().getPackageName() + ".provider", mediaFile);
            videoUri = FileProvider.getUriForFile(this, "i.am.ce.by.murgqcy.provider", mediaFile);
        } else {
            videoUri  = Uri.fromFile(mediaFile);
        }
        intent.putExtra(MediaStore.EXTRA_OUTPUT, videoUri);
        intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
        intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, 5491520L);//5*1048*1048=5MB
        intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT,45);
        startActivityForResult(intent, VIDEO_CAPTURE);
    }

【问题讨论】:

  • 没有要求相机应用程序尊重这些额外内容。你可以请求他们,但你不能要求他们。

标签: android video android-camera


【解决方案1】:
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);

【讨论】:

  • 感谢您的回答。我也想降低视频质量。使用“1”可以吗?
  • 我明白了,所以你想要低质量。也许 Google Pixel 没有。供应商是否支持此功能是可选的,我已经阅读了一些没有此功能的手机。
【解决方案2】:

根据MediaStore.EXTRA_VIDEO_QUALITY 您应该将 MediaStore.EXTRA_VIDEO_QUALITY 的值从 0 更改为 1。

0 表示低质量

这可能是解决方案intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 2019-08-06
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 1970-01-01
    相关资源
    最近更新 更多