鸿蒙选取相册视频,获取封面图并上传阿里云OSS

继上一次完成了鸿蒙选取图片上传阿里云OSS后, 这次记录下选择相册视频,并生成PixelMap 缩略图显示在UI中,并在上传的时候生成沙箱地址用于上传。

1、通过picker 选择本地视频返回的视频地址生成缩略图

复制代码
const getVideoThumb = async (filePath: string) => {
  // 创建AVImageGenerator对象
  let avImageGenerator: media.AVImageGenerator = await media.createAVImageGenerator()
  let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
  let avFileDescriptor: media.AVFileDescriptor = { fd: file.fd };
  avImageGenerator.fdSrc = avFileDescriptor;
  // 初始化入参
  let timeUs = 0
  let queryOption = media.AVImageQueryOptions.AV_IMAGE_QUERY_NEXT_SYNC
  let param: media.PixelMapParams = {
    width : 300,
    height : 400,
  }
  // 获取缩略图(promise模式)
  let pixelMap = await avImageGenerator.fetchFrameByTime(timeUs, queryOption, param)
  // 释放资源(promise模式)
  avImageGenerator.release()
  console.info(`release success.`)
  fs.closeSync(file)

  return pixelMap
}

2、通过pixelMap 生成封面图的沙箱地址用于OSS上传

复制代码
let packOpts: image.PackingOption = { format: "image/jpeg", quality: 98 }
const imagePackerApi = image.createImagePacker();
imagePackerApi.packing(pixelMap, packOpts).then(async (buffer: ArrayBuffer) => {
  //文件操作
  let filePath = context.cacheDir + name
  let file = fs.openSync(filePath,fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE)
  fs.writeSync(file.fd,buffer)
  //获取uri,使用uri来通过image展示,因为image组件目前不支持直接用路径
  let urlStr = fileUri.getUriFromPath(filePath)
  console.log("保存成功:" + filePath)
})

3、阿里云OSS上传,这一步不会的可以看下我上一篇文章

鸿蒙APP 上传文件到阿里云OSS

相关推荐
亚林瓜子5 小时前
AWS EB使用自定义镜像
云计算·bug·aws·ami·fix·eb·al2023
kailp11 小时前
无需本地显卡!跑GPT-SoVITS-V2Pro完整教程
人工智能·gpt·ai·大模型·云计算
同聘云13 小时前
阿里云国际站云服务器价格持续走低会取代VPS主机吗?
服务器·阿里云·腾讯云
一只小白菜13 小时前
阿里云百炼API + Ollama本地部署:大模型开发环境配置全攻略(含PyCharm环境变量避坑指南)
阿里云·云计算
彭波39614 小时前
Steam致命错误failed to load steamui.dll?磁盘写入错误怎么解决?steam安装游戏为什么磁盘写入错误?提供一些可问题解决方案
游戏·阿里云·电脑·开源软件·代码复审
TG_yunshuguoji14 小时前
阿里云代理商:百炼模型部署成本优化指南
人工智能·阿里云·云计算·百炼大模型
AutoMQ14 小时前
360 如何用 AutoMQ 解决千亿级 Kafka 冷读难题
kafka·消息队列·云计算
翼龙云_cloud14 小时前
腾讯云代理商:腾讯云 OpenClaw 一键更新指南
人工智能·云计算·腾讯云·openclaw
咕噜签名-铁蛋16 小时前
腾讯云TCR企业版实例创建全指南:从前提条件到控制台/API操作步骤
云计算·腾讯云
TG_yunshuguoji16 小时前
阿里云代理商:如何用阿里云AppFlow 为飞书机器人配置定时任务?
人工智能·阿里云·机器人·云计算·飞书