在视频录制时设置durationLimit或sizeLimit的其他方法?

时间:2013-01-24 12:55:15

标签: android video camera android-camera-intent

我想要实现的是用户只能录制视频30秒或特定大小的内容。

我尝试使用下面的内容(单独或一起使用)

public static final java.lang.String EXTRA_SIZE_LIMIT = "android.intent.extra.sizeLimit";
public static final java.lang.String EXTRA_DURATION_LIMIT = "android.intent.extra.durationLimit";

结果

  1. EXTRA_SIZE_LIMIT 三星手机上工作。在HTC上它的工作非常不准确。你必须将EXTRA_VIDEO_QUALITY设置为0,这意味着低质量(它是sh * t为地狱),如果你将它设置为“1”,它将无法正常工作。

  2. EXTRA_DURATION_LIMIT 无法在 HTC手机上使用。除了HTC,我尝试过的所有品牌都没有任何问题。

  3. 所以我想知道在Android上进行视频录制时是否还有其他方法可以设置持续时间或大小的限制?

4 个答案:

答案 0 :(得分:1)

不,不是在使用ACTION_VIDEO_CAPTURE时。直接使用MediaRecorder可能会导致类似的问题。

另一种方法是告知用户限制并拒绝超出您设置限制的录制视频。

答案 1 :(得分:1)

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0); //Low Quality
    intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT,2097152L);  //2MB
    intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT,30); //30Seconds
    startActivityForResult(intent, CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE);

您可以使用这种方式设置视频大小或持续时间,并使用“EXTRA_SIZE_LIMIT”和“EXTRA_DURATION_LIMIT”键传递意图。

这很好用。

答案 2 :(得分:0)

您可以设置最长持续时间和最大文件大小

 recorder.setMaxDuration(80000); // 80 seconds
 recorder.setMaxFileSize(5000000); 

答案 3 :(得分:0)

这是我的配置

<table id="conf_grid" class="easyui-datagrid" 
	data-options="url:'jsp/generate.json',method:'get',
				view:groupview,groupField:'req',
				groupFormatter:function(value,rows){return value+' - '+rows.length+' requests ';}">

在LG手机上工作正常,三星设备无视质量参数