HarmonyOS 鸿蒙Next 如何获取视频封面图的jpg图片地址

发布于 1周前 作者 phonegap100 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何获取视频封面图的jpg图片地址

通过以下方式可以获取到视频封面图的pixelMap信息,但是无法获取对应这个封面图jpg沙箱地址。


// 获取视频缩略图
public static async uriGetAssets(context: Context, uri: string, callBack: Function) {
  try {
    let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    // 配置查询条件,使用PhotoViewPicker选择图片返回的uri进行查询
    predicates.equalTo('uri', uri);
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> =
      await phAccessHelper.getAssets(fetchOption);
    // 得到uri对应的PhotoAsset对象,读取文件的部分信息
    const asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    Log.debug('asset displayName: ', asset.displayName);
    Log.debug('asset uri: ', asset.uri);
    Log.debug('asset photoType: ' + asset.photoType);
    // Log.debug('asset width: ' + asset.get(photoAccessHelper.PhotoKeys.WIDTH));
    // Log.debug('asset height: ' + asset.get(photoAccessHelper.PhotoKeys.HEIGHT));
    // 获取缩略图
    asset.getThumbnail((err, pixelMap) => {
      if (err == undefined) {
        Log.debug('getThumbnail successful ' + JSON.stringify(pixelMap));
        if (callBack) {
          callBack(pixelMap)
        }
      } else {
        Log.error('getThumbnail fail' + err);
        // 可以获取成功,但是不知道怎么获取这个视频封面图jpg地址
        if (callBack) {
          callBack(pixelMap)
        }
      }
    });
  } catch (error) {
    Log.error('uriGetAssets failed with err: ' + JSON.stringify(error));
  }
}
 

更多关于HarmonyOS 鸿蒙Next 如何获取视频封面图的jpg图片地址的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next 如何获取视频封面图的jpg图片地址的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS 鸿蒙Next系统中,获取视频封面图的JPG图片地址通常涉及访问媒体库并提取视频的缩略图。以下是具体步骤的简要说明:

  1. 访问媒体库:使用鸿蒙系统提供的媒体库API,查询视频文件。

  2. 提取缩略图:通过媒体库API或视频处理模块,提取视频的封面图(即缩略图)。鸿蒙系统可能内置了相关API,用于直接从视频帧中提取图像。

  3. 获取图片地址:将提取的缩略图保存为JPG格式,并获取其存储路径或URL。这一步可能涉及文件系统的操作,确保你有权限写入和读取指定路径。

  4. 处理权限:确保应用有读取存储和写入存储的权限,特别是当处理外部存储时。

  5. 图片地址使用:得到的JPG图片地址可用于在UI中显示,或进行其他处理。

示例代码(伪代码,实际需根据鸿蒙API文档实现):

MediaLibrary library;
VideoFile video = library.getVideo(videoPath);
Thumbnail thumbnail = video.getThumbnail();
String jpgPath = saveThumbnailAsJpg(thumbnail);
// jpgPath即为所需JPG图片地址

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

回到顶部