HarmonyOS 鸿蒙Next 视频缩略图尺寸问题

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

我根据视频uri获取到了第一帧作为缩略图,但是创建的时候需要自己设置尺寸,但是本地视频的尺寸并不相同,怎么能根据uri直接获取视频的长宽比

// 初始化入参
let timeUs = 0
let queryOption = media.AVImageQueryOptions.AV_IMAGE_QUERY_NEXT_SYNC
let param: media.PixelMapParams = { width: 213, height: 120, }
// 获取缩略图(promise模式)
let pixelMap = await avImageGenerator.fetchFrameByTime(timeUs, queryOption, param)

更多关于HarmonyOS 鸿蒙Next 视频缩略图尺寸问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

通过getAssets获取图片和视频资源,关于图片/视频的宽高属性在photoAccessHelper.PhotoKeys中。

async function uriGetAssets() {
  try {
    let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let uri = 'file://media/Photo/1/IMG_datetime_0001/displayName.jpg'
    // 配置查询条件,使用PhotoViewPicker选择图片返回的uri进行查询
    predicates.equalTo('uri', uri);
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [photoAccessHelper.PhotoKeys.WIDTH, photoAccessHelper.PhotoKeys.HEIGHT,
        photoAccessHelper.PhotoKeys.TITLE, photoAccessHelper.PhotoKeys.DURATION],
      predicates: predicates
    };
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> =
      await phAccessHelper.getAssets(fetchOption);
    // 得到uri对应的PhotoAsset对象,读取文件的部分信息
    const asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    console.info('asset displayName: ', asset.displayName);
    console.info('asset uri: ', asset.uri);
    console.info('asset photoType: ', asset.photoType);
    console.info('asset width: ', asset.get(photoAccessHelper.PhotoKeys.WIDTH));
    console.info('asset height: ', asset.get(photoAccessHelper.PhotoKeys.HEIGHT));
    console.info('asset title: ' + asset.get(photoAccessHelper.PhotoKeys.TITLE));
    // 获取缩略图
    asset.getThumbnail((err, pixelMap) => {
      if (err == undefined) {
        console.info('getThumbnail successful ' + JSON.stringify(pixelMap));
      } else {
        console.error('getThumbnail fail', err);
      }
    });
  } catch (error) {
    console.error('uriGetAssets failed with err: ' + JSON.stringify(error));
  }
}

官网方法指导链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/photoaccesshelper-photoviewpicker-V5#指定uri获取图片或视频资源

更多关于HarmonyOS 鸿蒙Next 视频缩略图尺寸问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,视频缩略图尺寸问题通常涉及媒体库或相关API的使用。如果开发者遇到视频缩略图生成时尺寸不符合预期的问题,这可能是由于以下几个原因:

  1. API参数设置:检查生成缩略图时所使用的API参数,确保传入的宽度和高度参数正确无误。鸿蒙系统提供了相应的API接口来指定缩略图的尺寸,开发者应确保这些参数符合需求。

  2. 媒体库配置:鸿蒙的媒体库可能在处理不同视频格式和分辨率时存在默认行为,检查是否有相关配置可以调整缩略图的生成逻辑,如缩放模式、裁剪方式等。

  3. 视频本身属性:视频的原始尺寸和分辨率可能会影响缩略图的生成。如果视频分辨率极低或极高,系统生成的缩略图可能无法精确匹配设定的尺寸。

  4. 缓存机制:鸿蒙系统可能缓存了之前生成的缩略图,如果系统缓存了旧尺寸的缩略图,可能需要清理缓存或强制重新生成。

开发者应检查上述方面,确保API使用正确,配置适当,并考虑视频属性对缩略图生成的影响。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部