如何使用Intent限制音频录制时间?

16

当使用意图时,我该如何限制录制?

我尝试了这段代码:

 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秒的时间限制不起作用?


很抱歉,我没有答案。看起来解决方案不存在 :-) - mira
4个回答

10

我有一个类似的问题,我使用以下代码片段解决了这个问题:

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是我定义的整型变量:

private static final int CAMERA_PIC_REQUEST = 1337;

1
谢谢!cameraIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 5);对我非常有效 :) 尽管我把时间改成了60秒。 - Azurespot
嗨,对我来说,它适用于视频。 对于音频,我使用了这个 https://stackoverflow.com/a/27917361/11107110 - Ali Hosein pour

2

你可以尝试使用MediaRecorder mRecorder = new MediaRecorder();以及mRecorder.setMaxDuration(5000) // 5秒;


1
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是你的文件路径。尝试这个。


0
    intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 60);

MediaStore.EXTRA_DURATION_LIMIT与"android.intent.extra.durationLimit"完全相同。 - rcorbellini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接