MediaStore.EXTRA_VIDEO_QUALITY不适用于Android视频捕获

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MediaStore.EXTRA_VIDEO_QUALITY不适用于Android视频捕获相关的知识,希望对你有一定的参考价值。

我正在申请我正在录制来自Camera Intent的视频。在我的三星手机MediaStore.EXTRA_VIDEO_QUALITY正在工作,甚至我分配的内存大小也可以,但我的谷歌像素相同的应用程序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);
    }
答案
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
另一答案

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

0意味着低质量

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

以上是关于MediaStore.EXTRA_VIDEO_QUALITY不适用于Android视频捕获的主要内容,如果未能解决你的问题,请参考以下文章