当前位置: 首页> 文旅> 美景 > 施工企业应建立的安全健康与环境管理制度包括_网页与网站的区别_关键词搜索优化外包_网站seo优化培训

施工企业应建立的安全健康与环境管理制度包括_网页与网站的区别_关键词搜索优化外包_网站seo优化培训

时间:2025/7/30 7:51:53来源:https://blog.csdn.net/Maniu_666/article/details/145971239 浏览次数:0次
施工企业应建立的安全健康与环境管理制度包括_网页与网站的区别_关键词搜索优化外包_网站seo优化培训

往期推文全新看点(文中附带全新鸿蒙5.0全栈学习笔录)

✏️ 鸿蒙(HarmonyOS)北向开发知识点记录~

✏️ 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~

✏️ 鸿蒙应用开发与鸿蒙系统开发哪个更有前景?

✏️ 嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~

✏️ 对于大前端开发来说,转鸿蒙开发究竟是福还是祸?

✏️ 鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?

✏️ 记录一场鸿蒙开发岗位面试经历~

✏️ 持续更新中……


场景描述

使用 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 {console.info('getAssets photoAsset.displayName : ' + photoAsset.displayName);// let size: image.Size = { width: 350, height: 300 };//调用PhotoAsset.getThumbnail获取图片的缩略图的PixelMapthis.pixelMapp = await photoAsset.getThumbnail();let imageInfo: image.ImageInfo = await this.pixelMapp.getImageInfo()console.info('getThumbnail successful, pixelMap ImageInfo size: ' + JSON.stringify(imageInfo.size));videoFetchResult.close();albumFetchResult.close();} catch (err) {console.error('getThumbnail failed with err: ' + err);}}

场景二:指定时间获取视频的缩略图

方案

1. 通过用createAVImageGenerator()创建AVImageGenerator对象。

2. 设置资源:需要设置AVImageGenerator对象的属性fdSrc(表示文件描述符)。

3. 获取指定时间点的缩略图:调用fetchFrameByTime(),传入具体时间,根据获取的缩略图时间点与视频帧的对应关系,可以获取到一个PixelMap对象,该对象可用于图片显示。

取的缩略图时间点与视频帧的对应关系AVImageQueryOptions。

4. 间隔一秒时间获取视频缩略图。

5. 释放资源:调用release()销毁avImageGenerator实例,释放资源。

核心代码

//申明缩略图时间点与视频帧的对应关系。let queryOption = media.AVImageQueryOptions.AV_IMAGE_QUERY_CLOSEST_SYNC//缩略图的格式参数。let param: media.PixelMapParams = {width: 300,height: 300,}async aboutToAppear(): Promise<void> {// 创建AVImageGenerator对象avImageGenerator = await media.createAVImageGenerator()// 设置fdSrcavImageGenerator.fdSrc = await getContext(this).resourceManager.getRawFd('VID_1713928724_004.mp4');}async testFetchFrameByTime(i: number) {// 获取缩略图(promise模式)this.pixelMap = await avImageGenerator.fetchFrameByTime(i, queryOption, param)}//间隔1秒获取视频缩略图onClick(() => {i = i + 1000000;Logger.info("current i is :" + i);this.testFetchFrameByTime(i)})Image(this.pixelMap).width(300).height('30%')// .syncLoad(true).margin({top: 20})
关键字:施工企业应建立的安全健康与环境管理制度包括_网页与网站的区别_关键词搜索优化外包_网站seo优化培训

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: