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

相关推荐
AKAMAI14 小时前
每个应用程序现在都生活在人工智能生态系统中
人工智能·云计算
财迅通Ai15 小时前
科源制药携手腾讯云推进AI办公迭代升级
人工智能·云计算·腾讯云·科源制药
tg_xianheyun19 小时前
腾讯云国际账号注册代充值服务商怎么选?
大数据·运维·服务器·云计算·github·腾讯云·cdn加速
liuqs33219 小时前
AWS、Azure接连宕机后,“云存储”的这个软肋被重新摆上台面
云计算·azure·aws
不一样的少年_19 小时前
Docker 入门第一课:从架构、云服务器到安装完成
linux·docker·云计算
聚搜云——JuSouClouD20 小时前
上海阿里云代理商(聚搜云)分享:ECS 服务器 CPU 跑满 100%,如何找到占用高的进程
服务器·阿里云·云计算
星野川崎2061 天前
电商多店运维:云机24小时挂机频繁掉线、账号无故风控深度原因分析及解决方案
大数据·运维·服务器·云计算·电商
@HNUSTer2 天前
基于 GEE 的 Sentinel-2 海岸线自动提取:从NDWI水体指数到Canny边缘检测全流程
云计算·数据集·遥感大数据·gee·云平台·canny边缘检测·sentinel-2
@HNUSTer2 天前
基于 GEE 的 LST 降尺度建模——利用 Sentinel-2 和 SRTM 提升 Landsat 热红外分辨率至 10 米
云计算·数据集·遥感大数据·gee·云平台·随机森林回归模型·多源遥感与随机森林回归
wzq11_6662 天前
云计算运维学习day22——Ansible-Roles
运维·学习·云计算