harmony 鸿蒙@ohos.multimedia.movingphotoview (动态照片)(系统接口)

  • 2025-06-16
  • 浏览 (4)

@ohos.multimedia.movingphotoview (动态照片)(系统接口)

用于播放动态照片文件并控制其播放状态的组件。

说明:

  • 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
  • 当前页面仅包含本模块的系统接口,其他公开接口参见@ohos.multimedia.movingphotoview (动态照片)

MovingPhotoViewOptions

参数名 参数类型 必填 参数描述
movingPhotoFormat14+ PixelMapFormat 设置动态照片组件封面图片的解码格式。
dynamicRangeMode14+ DynamicRangeMode 设置动态照片组件封面图片的RangeMode样式。

PixelMapFormat14+

动态照片组件封面图片的解码格式。

系统接口:此接口为系统接口。

系统能力: SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 说明
UNKNOWN 0 未知格式。
RGBA_8888 1 格式为RGBA_8888。
NV21 2 格式为NV21。
RGBA_1010102 3 格式为RGBA_1010102。
YCBCR_P010 4 格式为YCBCR_P010。
YCRCB_P010 5 格式为YCRCB_P010。

DynamicRangeMode14+

动态照片组件封面图片的可使用的扩展范围,决定了图片的显示效果。

系统接口:此接口为系统接口。

系统能力: SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 说明
HIGH 0 允许图像内容使用不受限制的扩展范围,显示HDR效果,建议使用的解码格式YCBCR_P010。
CONSTRAINT 1 允许图像内容使用一些扩展范围。
STANDARD 2 允许图像内容动态单位限制在标准范围内,显示SDR效果,需要使用的解码格式UNKNOWN或者RGBA_8888。

示例1:系统应用设置动态照片解码格式和rangemode格式

// 该示例只展示参数用法,具体可以执行用例参考动态照片公开接口文档
import { photoAccessHelper, MovingPhotoView, MovingPhotoViewController, MovingPhotoViewAttribute } from '@kit.MediaLibraryKit';
import { PixelMapFormat, DynamicRangeMode } from '@ohos.multimedia.movingphotoview';

let data: photoAccessHelper.MovingPhoto
async function loading(context: Context) {
  try {
    // 需要确保imageFileUri和videoFileUri对应的资源在应用沙箱存在
    let imageFileUri = 'file://{bundleName}/data/storage/el2/base/haps/entry/files/xxx.jpg';
    let videoFileUri = 'file://{bundleName}/data/storage/el2/base/haps/entry/files/xxx.mp4';
    data = await photoAccessHelper.MediaAssetManager.loadMovingPhoto(context, imageFileUri, videoFileUri);
    console.info('load moving photo successfully');
  } catch (err) {
    console.error(`load moving photo failed with error: ${err.code}, ${err.message}`);
  }
}
@Entry
@Component
struct Index {
  controller: MovingPhotoViewController = new MovingPhotoViewController();
  format: undefined|PixelMapFormat = PixelMapFormat.YCBCR_P010;
  mode: undefined|DynamicRangeMode = DynamicRangeMode.HIGH;
  private uiContext: UIContext = this.getUIContext()
  aboutToAppear(): void {
    loading(this.uiContext.getHostContext()!)
  }

  build() {
    NavDestination() {
      Column() {
        Stack({ alignContent: Alignment.BottomStart }) {
          MovingPhotoView({
            movingPhoto: data,
            controller: this.controller,
            movingPhotoFormat: this.format,
            dynamicRangeMode: this.mode
          })
        }
      }
    }
  }
}

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Media Library Kit(媒体文件管理服务)

harmony 鸿蒙media_access_helper_capi.h

harmony 鸿蒙media_asset_base_capi.h

harmony 鸿蒙media_asset_capi.h

harmony 鸿蒙media_asset_change_request_capi.h

harmony 鸿蒙media_asset_manager_capi.h

harmony 鸿蒙MediaAssetManager

harmony 鸿蒙MediaLibrary_RequestId

harmony 鸿蒙MediaLibrary_RequestOptions

harmony 鸿蒙moving_photo_capi.h

0  赞