HarmonyOS是否可以限制拍摄的视频时长
======================

#### 问题现象

业务场景：朋友圈发送视频，一般限制大小是15s。所以是否可以通过参数来控制拍摄视频的最大时长，比如30秒或者60秒等？

#### 背景知识

*   系统相机开发可参考[通过系统相机拍照和录像](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/camera-picker)，开发者调用picker方法会直接跳转到系统相机页面，功能完备齐全。
*   自定义相机开发需要开发者自行开发相机[拍照](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/camera-shooting-case)与[录像](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/camera-recording-case)功能。

#### 解决方案

*   使用[系统相机](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-camerapicker)时，可以通过相机配置选项[PickerProfiles](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-camerapicker#pickerprofile)中的videoDuration设置录制的最大时长，默认单位是秒。
    
    let pickerProfile: picker.PickerProfile \= {
      cameraPosition: camera.CameraPosition.CAMERA\_POSITION\_BACK,
     _ // 录制的最大时长（单位：秒）_
      videoDuration: 5
    };
    let pickerResult: picker.PickerResult \= await picker.pick(context,
      \[picker.PickerMediaType.PHOTO, picker.PickerMediaType.VIDEO\], pickerProfile);
    
*   使用自定义相机[录制](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/camera-recording-case)视频，可以通过配置音视频参数[AVRecorderConfig](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-media-i#avrecorderconfig9)中的maxDuration设置录制的最大时长，单位为秒。
    
    let aVRecorderConfig: media.AVRecorderConfig \= {
      audioSourceType: media.AudioSourceType.AUDIO\_SOURCE\_TYPE\_MIC,
      videoSourceType: media.VideoSourceType.VIDEO\_SOURCE\_TYPE\_SURFACE\_YUV,
      profile: aVRecorderProfile,
      url: \`fd://${file.fd.toString()}\`, _// 文件需先由调用者创建，赋予读写权限，将文件fd传给此参数，eg.fd://45--file:///data/media/01.mp4_
      metadata: avMetadata,
      maxDuration: 5
    };