3

我正在使用 ImagePicker 从图库或通过从相机捕获它们来上传视频。

问题是我不希望视频超过 1 分钟的持续时间,在画廊选择模式下,我会检查所选视频的持续时间,如果视频超过 1 分钟,则会显示一条消息。

我该如何做类似 retrica、打开相机但限制视频时长的事情?

4

3 回答 3

2

使用image_picker提供的 maxDuration

 final PickedFile videoFile = await picker.getVideo( 
      source: ImageSource.camera,   
      maxDuration: const Duration(seconds: 60),
  );
于 2020-08-05T10:53:58.337 回答
0

我认为您无法通过 ImagePicker 执行此操作,因为此插件通过手机默认相机应用程序捕获视频,并且您无法在捕获时检查和管理持续时间,直到用户停止捕获并返回您的应用程序

但是如果您使用相机插件,您可以这样做,因为此插件可以通过您的应用程序捕获视频,并且您可以在用户捕获视频时检查视频持续时间

https://pub.dev/packages/camera
于 2019-10-14T18:37:29.833 回答
0

如果您想获得此功能,则无法控制它使用相机插件 https://pub.dev/packages/camera 并使用计时器停止录制

//Timer
    timer = Timer.periodic(Duration(seconds: 60), (Timer t) { 
            _onStopButtonPressed();
            timer.cancel();
          });
        });

//stop recording when click on the button
    void _onStopButtonPressed() {
        setState(() {
          buttonColor = Colors.white;
        });
            _stopVideoRecording().then((_) {
              if (mounted) setState(() {});


            });

        timer.cancel(); //when user close it manually
      }

// stop funcation
    Future<void> _stopVideoRecording() async {
        if (!controller.value.isRecordingVideo) {
          return null;
        }

    try {
      await controller.stopVideoRecording();
    } on CameraException catch (e) {
      _showCameraException(e);
      return null;
    }
  }

您也可以在录制后使用 video_player 插件重播视频 https://pub.dev/packages/video_player#-installing-tab-

于 2019-10-15T01:40:22.900 回答