【一起来学习鸿蒙开发】HarmonyOS影音娱乐类行业实践 - 动态图片播放
·
即日起至12月31日,加入班级并成功考取【HarmonyOS开发者基础/高级证书】+发布一篇技术文章,即可解锁“通关成就”,有机会赢取官方限定礼品!
礼品数量有限,手速要快!点击加入,让你的努力闪闪发光!✨
场景介绍
动态图片播放是影音娱乐类应用中的典型场景之一,如在视频评论区、新闻资讯页面等播放动态图片。
本示例基于MovingPhotoView组件展示了多个动态图片滑动播放的功能。
实现思路
- 调用photoAccessHelper.getPhotoAccessHelper方法选择手机相册里的图片。
- let photoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
- photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.MOVING_PHOTO_IMAGE_TYPE;
- photoSelectOptions.maxSelectNumber = MAX_PHOTO_NUM;
- let photoViewPicker = new photoAccessHelper.PhotoViewPicker();
- let photoSelectResult = await photoViewPicker.select(photoSelectOptions);
- let uris = photoSelectResult.photoUris;
- 把第一步选择好的图片转换成MovingPhoto格式。
- let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
- predicates.equalTo(photoAccessHelper.PhotoKeys.URI, uris[i]);
- let fetchOption: photoAccessHelper.FetchOptions = {
- fetchColumns: [],
- predicates: predicates
- };
- let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> =
- await phAccessHelper.getAssets(fetchOption);
- let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
- await photoAccessHelper.MediaAssetManager.requestMovingPhoto(context, photoAsset, {
- deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE
- }, {
- async onDataPrepared(movingPhoto: photoAccessHelper.MovingPhoto) {
- if (movingPhoto !== undefined) {
- srcList.push(movingPhoto);
- }
- }
- });
- 使用MovingPhotoView组件播放动态图片。
- MovingPhotoView({
- movingPhoto: this.srcList[index],
- controller: this.controllers[index]
- })
- .muted(false)
- .autoPlay(false)
- .objectFit(ImageFit.Cover)
- .overlay(this.overlayBuilder())
约束与限制
- 本示例支持API Version 17 Release及以上版本。
- 本示例支持HarmonyOS 5.0.5 Release SDK及以上版本。
- 本示例需要使用DevEco Studio 5.0.5 Release及以上版本进行编译运行。
工程目录
- ├──entry/src/main/ets // 代码区
- │ ├──constants
- │ │ └──StyleConstants.ets // 样式常量
- │ ├──entryability
- │ │ └──EntryAbility.ets
- │ ├──entrybackupability
- │ │ └──EntryBackupAbility.ets
- │ ├──pages
- │ │ └──MainPage.ets // 入口页
- │ └──views
- │ └──MovingPhoto.ets // 动态图片展示页
- └──entry/src/main/resources // 应用资源目录
参考文档
@ohos.multimedia.movingphotoview(动态照片)
代码下载
更多推荐


所有评论(0)