场景描述
使用 getThumbnail和AVImageGenerator接口可以实现从原始媒体资源中获取视频指定时间的缩略图。
方案描述
场景一:自动生成相册中视频的缩略图
效果图
方案
1.通过photoAccessHelper的getAlbums方法获取获取视频相册对象。
2.通过视频检索条件调用album.getAssets方法,获取视频对象。
3.调用 Asset.getThumbnail接口获取视频对象的缩略图(pixelMap)。
4.通过image组件显示pixelMap。
核心代码
async getThumbnail() {
//建立视频检索条件,用于获取视频
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
//获取视频相册
let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.VIDEO);
let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
console.info('get video album successfully, albumUri: ' + album.albumUri);
//获取视频相册的视频资源
let videoFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
//调用FetchResult.getFirstObject接口获取第一个视频。
let photoAsset: photoAccessHelper.PhotoAsset = await videoFetchResult.getFirstObject();
console.info('video album getAssets successfully, photoAsset displayName: ' + photoAsset.displayName);
try {
co