如何使用 Intent 限制录音时间?
Posted
技术标签:
【中文标题】如何使用 Intent 限制录音时间?【英文标题】:How to limit audio recording time using Intent? 【发布时间】:2013-03-12 03:17:45 【问题描述】:使用 Intent 时如何限制录制?
我试过这段代码:
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra("android.intent.extra.durationLimit",5);
startActivityForResult(intent,RQS_RECORDING);
当我录制视频时,此代码可以正常工作。时间从 5 到 0 倒计时,5 秒后录音自动停止。但是当我录制声音时,这个有限的时间不起作用。为什么?
Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
intent.putExtra("android.intent.extra.durationLimit", 5);
startActivityForResult(intent, RQS_RECORDING);
为什么我录制声音时这个 5 秒的时间限制不起作用?
【问题讨论】:
恐怕还没有答案。似乎解决方案不存在:-) 【参考方案1】:我有一个类似的问题,我使用下面的代码 sn-p 解决了我的问题:
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 5);
startActivityForResult(this, cameraIntent,CAMERA_PIC_REQUEST);
其中 CAMERA_PIC_REQUEST 是我的 int 类型:
private static final int CAMERA_PIC_REQUEST = 1337;
【讨论】:
谢谢!cameraIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 5);
完全为我工作。 :) 虽然我将数字改为 60,持续 60 秒。【参考方案2】:
您应该尝试使用 MediaRecorder mRecorder = new MediaRecorder(); 和 mRecorder.setMaxDuration(5000) // 5 秒;
【讨论】:
【参考方案3】:private void recordVideo()
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_DURATION_LIMIT, 30);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set Video file
startActivityForResult(intent, CAMERA_CAPTURE_VIDEO_REQUEST_CODE);
fileuri 是您的文件路径。试试这个。
【讨论】:
【参考方案4】: intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 60);
【讨论】:
MediaStore.EXTRA_DURATION_LIMIT 与“android.intent.extra.durationLimit”完全一样以上是关于如何使用 Intent 限制录音时间?的主要内容,如果未能解决你的问题,请参考以下文章
如何在意图“Intent.EXTRA_ALLOW_MULTIPLE”上设置最大文件选择计数。用户最多可以选择一定的限制?