HarmonyOS 鸿蒙Next 如何获取从picker中选择的视频的时长呢?

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

HarmonyOS 鸿蒙Next 如何获取从picker中选择的视频的时长呢?

请问如何获取从picker中选择的视频的时长呢?

1 回复

更多关于HarmonyOS 鸿蒙Next 如何获取从picker中选择的视频的时长呢?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,要从Picker组件选择的视频中获取时长,可以通过以下步骤实现:

  1. 选择视频:使用Picker组件的视频选择功能,让用户从设备的视频库中选择一个或多个视频文件。选择完成后,系统会返回所选视频的URI(统一资源标识符)。

  2. 获取视频时长

    • 引入必要的模块,如photoAccessHelperdataSharePredicates
    • 使用photoAccessHelpergetAssets方法,通过URI查询视频文件的详细信息。
    • 在查询结果中,可以通过asset.get(photoAccessHelper.PhotoKeys.DURATION)获取视频的时长。

以下是一个简化的代码示例,展示了如何获取所选视频的时长:

import photoAccessHelper from '@ohos.file.photoAccessHelper';
import dataSharePredicates from '@ohos.data.dataSharePredicates';

// 假设已经从Picker中获取了视频的URI,存储在videoUri变量中
let videoUri = '...'; // 视频文件的URI

// 使用photoAccessHelper获取视频信息
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(getContext());
let predicates = new dataSharePredicates.DataSharePredicates();
predicates.equalTo('uri', videoUri);

let fetchOption = {
    fetchColumns: [photoAccessHelper.PhotoKeys.DURATION],
    predicates: predicates
};

phAccessHelper.getAssets(fetchOption).then(fetchResult => {
    let asset = fetchResult.getFirstObject();
    let duration = asset.get(photoAccessHelper.PhotoKeys.DURATION);
    console.info('Video duration: ' + duration);
});

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

回到顶部