即使在 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);