鸿蒙选取相册视频,获取封面图并上传阿里云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

相关推荐
翼龙云_cloud5 小时前
阿里云渠道商:如何手动一键扩缩容ECS实例?
运维·服务器·阿里云·云计算
AKAMAI7 小时前
基准测试:Akamai云上的NVIDIA RTX Pro 6000 Blackwell
人工智能·云计算·测试
齐 飞9 小时前
使用阿里云的MaxCompute查询sql时报错:DruidPooledPreparedStatement: getMaxFieldSize error
sql·阿里云·odps
China_Yanhy10 小时前
AWS EKS三种类别,如何选择
云计算·aws
xybDIY11 小时前
亚马逊云 Organizations 组织 Link 账号关联与解绑自动化解决方案
运维·自动化·云计算·aws
倪某某11 小时前
阿里云无影GPU部署WAN2.2模型
阿里云·云计算
阿里云通信11 小时前
WhatsApp 账号被封怎么办?日常“养号”、防封、解封实践
阿里云·whatsapp·whatsapp 封号
倪某某11 小时前
阿里云ECS GPU部署WAN2.2
人工智能·阿里云·云计算
风吹落叶花飘荡13 小时前
将mysql数据库的内容备份至阿里云 oss归档存储
数据库·mysql·阿里云
小白考证进阶中14 小时前
阿里云ACA认证常见问题答疑
阿里云·大模型·云计算·阿里云aca证书·阿里云aca·aca认证·入门证书