设置持续时间限制或大小视频录制时限制的替代方法



我想实现的是用户只能录制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,这意味着质量低下(它就像地狱一样糟糕),如果您将其设置为"1",它将不起作用。

  2. EXTRA_DURATION_LIMIT不适用于HTC手机。除了HTC,它没有任何问题,我尝试过的所有品牌。

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

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"传递意图的视频大小或持续时间。

这工作正常。

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

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

这是我

的配置

intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);//0 for low, 1 higth
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT,20); //20seq
intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT,size*1048576L);//X mb *1024*1024 
startActivityForResult(intent, VIDEO_CAMERA_SELECT);

在LG手机上工作正常,永远没有三星设备忽略质量参数

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

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

相关内容

  • 没有找到相关文章

最新更新