使用Intent设置视频分辨率

时间:2013-12-12 07:01:22

标签: android

我正在尝试在我的应用中录制视频。我要做的是将视频分辨率设置为设备的最低分辨率。

我正在使用此代码录制视频:

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_SIZE_LIMIT, 1099648L);
intent.putExtra(MediaStore.EXTRA_FINISH_ON_COMPLETION, true);

intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file
                                                        // name
// start the video capture Intent
startActivityForResult(intent, CAMERA_CAPTURE_VIDEO_REQUEST_CODE);

有可能吗?或者我是否需要使用MediaRecorder来自定义视频设置。 任何想法都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

设置最低分辨率可能不是一个好方法,但这是你唯一可以做的,我试图设置有点中等分辨率但失败。

intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0); //sets lowest resolution
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); //sets highest resolution

但问题是三星相机应用程序在这种情况下忽略了意图附加功能。所有三星设备的这种行为都是一样的。但这在Google Nexus设备上运行良好 我试过motoroa,它运行正常。

对于某些人来说,正如here提到的那样,EXTRA_VIDEO_QUALITY的工作正好相反。如果我们通过1,视频质量将更差,0将是最好的。 可悲的是,这对我没有用处:(

答案 1 :(得分:0)

使用此

Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
        takeVideoIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 3); // Duration in Seconds
        takeVideoIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0); // Quality Low
        takeVideoIntent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, 5491520L); // 5MB
        takeVideoIntent.putExtra(MediaStore.Video.Thumbnails.HEIGHT, 320);
        takeVideoIntent.putExtra(MediaStore.Video.Thumbnails.WIDTH, 240);

        if (takeVideoIntent.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(takeVideoIntent, CAMERA_RQ);
        }