即使在 android xamarin 中完成最长持续时间后,视频录制也不会停止
Video recording doesn't stop even after max duration for it finishes in android xamarin
我想让用户能够在我的应用中录制最长 2 分钟的视频。
我确实在我的代码中提供了视频录制意图的最大持续时间,但录像机在那之后不会停止。我需要为此做什么?
这是使用 intent 录制视频的代码。
private void TakeAVideo()
{
Intent intent = new Intent(MediaStore.ActionVideoCapture);
RecorderFile._file = new File(RecorderFile._dir, String.Format("vm_movie_{0}.mp4", Guid.NewGuid()));
if (IsFrontCameraAvailable) {
intent.PutExtra ("android.intent.extras.CAMERA_FACING", 1);
} else {
intent.PutExtra ("android.intent.extras.CAMERA_FACING", 0);
}
intent.PutExtra (MediaStore.ExtraDurationLimit, 120000);
intent.PutExtra (MediaStore.ExtraVideoQuality, 0);
intent.PutExtra(MediaStore.ExtraOutput, Uri.FromFile(RecorderFile._file));
StartActivityForResult(intent, 0);
}
好的。我想到了。基本上,当我们使用 intent
来捕获视频时,我们应该通过 No of Seconds 来设置最大持续时间,当我们使用 MediaRecorder
进行录制时,我们应该设置最大持续时间(以毫秒为单位)。
使用 intent
设置最大持续时间
intent.PutExtra (MediaStore.ExtraDurationLimit, yourDurationInSeconds);
使用 MediaRecorder
设置最大持续时间
mediaRecorderObject.SetMaximumDuration(youDurationInMilliSeconds);
我想让用户能够在我的应用中录制最长 2 分钟的视频。 我确实在我的代码中提供了视频录制意图的最大持续时间,但录像机在那之后不会停止。我需要为此做什么?
这是使用 intent 录制视频的代码。
private void TakeAVideo()
{
Intent intent = new Intent(MediaStore.ActionVideoCapture);
RecorderFile._file = new File(RecorderFile._dir, String.Format("vm_movie_{0}.mp4", Guid.NewGuid()));
if (IsFrontCameraAvailable) {
intent.PutExtra ("android.intent.extras.CAMERA_FACING", 1);
} else {
intent.PutExtra ("android.intent.extras.CAMERA_FACING", 0);
}
intent.PutExtra (MediaStore.ExtraDurationLimit, 120000);
intent.PutExtra (MediaStore.ExtraVideoQuality, 0);
intent.PutExtra(MediaStore.ExtraOutput, Uri.FromFile(RecorderFile._file));
StartActivityForResult(intent, 0);
}
好的。我想到了。基本上,当我们使用 intent
来捕获视频时,我们应该通过 No of Seconds 来设置最大持续时间,当我们使用 MediaRecorder
进行录制时,我们应该设置最大持续时间(以毫秒为单位)。
使用 intent
intent.PutExtra (MediaStore.ExtraDurationLimit, yourDurationInSeconds);
使用 MediaRecorder
mediaRecorderObject.SetMaximumDuration(youDurationInMilliSeconds);