HarmonyOS 鸿蒙Next 视频缩略图尺寸问题
我根据视频uri获取到了第一帧作为缩略图,但是创建的时候需要自己设置尺寸,但是本地视频的尺寸并不相同,怎么能根据uri直接获取视频的长宽比
// 初始化入参
let timeUs = 0
let queryOption = media.AVImageQueryOptions.AV_IMAGE_QUERY_NEXT_SYNC
let param: media.PixelMapParams = { width: 213, height: 120, }
// 获取缩略图(promise模式)
let pixelMap = await avImageGenerator.fetchFrameByTime(timeUs, queryOption, param)
更多关于HarmonyOS 鸿蒙Next 视频缩略图尺寸问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
通过getAssets获取图片和视频资源,关于图片/视频的宽高属性在photoAccessHelper.PhotoKeys中。
async function uriGetAssets() {
try {
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let uri = 'file://media/Photo/1/IMG_datetime_0001/displayName.jpg'
// 配置查询条件,使用PhotoViewPicker选择图片返回的uri进行查询
predicates.equalTo('uri', uri);
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [photoAccessHelper.PhotoKeys.WIDTH, photoAccessHelper.PhotoKeys.HEIGHT,
photoAccessHelper.PhotoKeys.TITLE, photoAccessHelper.PhotoKeys.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);
console.info('asset width: ', asset.get(photoAccessHelper.PhotoKeys.WIDTH));
console.info('asset height: ', asset.get(photoAccessHelper.PhotoKeys.HEIGHT));
console.info('asset title: ' + asset.get(photoAccessHelper.PhotoKeys.TITLE));
// 获取缩略图
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(鸿蒙)系统中,视频缩略图尺寸问题通常涉及媒体库或相关API的使用。如果开发者遇到视频缩略图生成时尺寸不符合预期的问题,这可能是由于以下几个原因:
-
API参数设置:检查生成缩略图时所使用的API参数,确保传入的宽度和高度参数正确无误。鸿蒙系统提供了相应的API接口来指定缩略图的尺寸,开发者应确保这些参数符合需求。
-
媒体库配置:鸿蒙的媒体库可能在处理不同视频格式和分辨率时存在默认行为,检查是否有相关配置可以调整缩略图的生成逻辑,如缩放模式、裁剪方式等。
-
视频本身属性:视频的原始尺寸和分辨率可能会影响缩略图的生成。如果视频分辨率极低或极高,系统生成的缩略图可能无法精确匹配设定的尺寸。
-
缓存机制:鸿蒙系统可能缓存了之前生成的缩略图,如果系统缓存了旧尺寸的缩略图,可能需要清理缓存或强制重新生成。
开发者应检查上述方面,确保API使用正确,配置适当,并考虑视频属性对缩略图生成的影响。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。