Arkts(API 9)视频录制和上传云存储功能的实现

一、录制功能的实现 

录制函数

 为实现录像功能,调用系统相机模块的方法更为快捷,实现函数如下

async takeVideo() { //视频录制函数
    await abilityAccessCtrl.createAtManager()
      .requestPermissionsFromUser(getContext(this), ['ohos.permission.CAMERA', 'ohos.permission.READ_MEDIA'])
    let context = getContext(this) as common.UIAbilityContext
    let result = await context.startAbilityForResult({ action: "ohos.want.action.videoCapture" })
    return result.want.uri
  }

Button组件调用函数,点击实现录制功能 

          Button({ type: ButtonType.Normal, stateEffect: true }){//视频录制
            Image($r('app.media.upload_media'))
              .width(50)
              .height(50)
              .interpolation(ImageInterpolation.High)
          }.onClick(async() => {
              this.takeVideo()//视频录制
            })
          .backgroundColor(Color.Transparent)

功能实现截图

左侧图标为视频录制按钮

二、视频上传云存储功能实现 

前提条件

华为AGC平台的云存储服务提供了客户端和服务端SDK,可以使用云存储SDK为您的应用实现安全可靠的文件上传和下载服务,同时具备如下优势。

  • 安全可靠:全流程使用HTTPS协议对用户的传输数据进行加密保护,并采用安全的加密协议将文件加密存储在云端。
  • 断点续传:因网络原因或用户原因导致的操作中止,只需要简单地传入操作中止的位置,就可以尝试重新开始该操作。
  • 可伸缩:提供EB级的数据存储,解决海量数据存储的难题。
  • 易维护:通过简单的判断返回异常就可以定位出错误原因,定位快捷方便。

完成前提条件后,即可使用华为AGC平台的云存储功能。

视频上传云存储功能实现

相关UI界面读者可自行制作,下述代码仅展示使用Arkts中Button进行上传操作

此外,读者也可以自行更改视频mp4文件名称,以满足不同需求

Button({ type: ButtonType.Normal, stateEffect: true }){//视频上传
          Image($r('app.media.upload')).width(50).height(50).interpolation(ImageInterpolation.High)
        }
        .onClick(async () =>{
          try {
            //1.从相册选中视频
            const photoSelectOptions = new picker.PhotoSelectOptions();
            photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.VIDEO_TYPE // 过滤选择媒体文件类型为VIDEO
            photoSelectOptions.maxSelectNumber = 1 // 选择媒体文件的最大数目
            const result = await new picker.PhotoViewPicker().select(photoSelectOptions)
            hilog.info(0, 'Upload', `VideoPicker Success ${result.photoUris[0]}`)//检测选中
            //2.调用云存储API上传视频
            await cloud.storage().upload({
              localPath: result.photoUris[0],
              cloudPath: `test_video/test.mp4`
            })
            hilog.info(0,'Upload','VideoUpload Success')//检测上传
            //3.获取上传媒体资源访问地址
            const Vurl = await cloud.storage().getDownloadURL(`test_video/test.mp4`)
            hilog.info(0,'Upload', `url: ${Vurl}`)//检测公网访问地址
          } catch (e) {
            hilog.error(0,'Upload',JSON.stringify(e))
          }
        }).backgroundColor(Color.Transparent)

 功能实现截图

 

后续作者会继续分享一些关于鸿蒙OS APP开发的知识,欢迎各位读者在评论区进行交流互动

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值