HarmonyOS 鸿蒙Next沙箱中的视频怎么获取时长和缩略图

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

HarmonyOS 鸿蒙Next沙箱中的视频怎么获取时长和缩略图 沙箱中的视频怎么获取时长和缩略图呢?

2 回复

可以用选择视频的uri来获得对应的PhotoAsset对象,读取视频的部分信息,可以参考如下代码

async function uriGetAssets(uri: string) {
  try {
    let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(this.context);
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    // 配置查询条件,使用PhotoViewPicker选择图片返回的uri进行查询
    predicates.equalTo('uri', uri);
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: ['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);
    // 获取时长
    let duration: photoAccessHelper.PhotoKeys = photoAccessHelper.PhotoKeys.DURATION;
    let photoAssetDuration: photoAccessHelper.MemberType = asset.get(duration.toString());
    console.info('asset duration: ', photoAssetDuration);
    // 获取缩略图
    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));
  }
}

更多关于HarmonyOS 鸿蒙Next沙箱中的视频怎么获取时长和缩略图的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next沙箱中获取视频的时长和缩略图,可以通过以下方式实现,不涉及Java或C语言代码:

  1. 获取视频时长

    • 使用鸿蒙系统提供的媒体框架API,特别是与视频文件解析相关的接口。
    • 调用该API加载视频文件,并查询其元数据(metadata),其中包含了视频的时长信息。
    • 根据API返回的数据结构,提取出时长字段即可。
  2. 获取视频缩略图

    • 同样利用鸿蒙的媒体框架,找到可以生成视频帧缩略图的接口。
    • 指定需要生成缩略图的时间点(通常是视频的开始、中间或结束位置)。
    • 调用接口生成缩略图,并获取生成的图片数据。
    • 该图片数据可以直接用于显示或保存到存储设备中。

请注意,具体实现时需要查阅鸿蒙系统的官方文档,了解相关API的具体用法和参数设置。由于API可能会随着系统版本的更新而有所变化,因此建议直接参考最新的官方文档或示例代码。

如果问题依旧没法解决请联系官网客服,官网地址是: https://www.itying.com/category-93-b0.html

回到顶部