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

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

HarmonyOS
2024-08-30 10:44:38
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

这里有个获取音视频元数据的参考链接,您参考下

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/avmetadataextractor-V5

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

async  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)); 
 } 
}
分享
微博
QQ
微信
回复
2024-08-30 17:48:14
相关问题
缩略图,如何获取文件缩略图
625浏览 • 1回复 待解决
HarmonyOS读取视频缩略图问题求助
483浏览 • 1回复 待解决
鸿蒙能获取图片指定大小缩略图
9431浏览 • 1回复 待解决
HarmonyOS 怎么获取视频播放时长
133浏览 • 1回复 待解决
HarmonyOS webview如何播放本地沙箱视频
1399浏览 • 1回复 待解决
有谁知道沙箱目录怎么获取
2227浏览 • 1回复 待解决