1# @ohos.multimedia.movingphotoview (动态照片)(系统接口) 2 3用于播放动态照片文件并控制其播放状态的组件。 4 5> **说明:** 6> 7> - 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> - 当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.multimedia.movingphotoview (动态照片)](ohos-multimedia-movingphotoview.md)。 9 10## MovingPhotoViewOptions 11 12 13| 参数名 | 参数类型 | 必填 | 参数描述 | 14| ----------- | ------------------------------------------------------------------------------------------------ | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------- | 15| movingPhotoFormat<sup>14+</sup> | [PixelMapFormat](#pixelmapformat14) | 否 | 设置动态照片组件封面图片的解码格式。 | 16| dynamicRangeMode<sup>14+</sup> | [DynamicRangeMode](#dynamicrangemode14) | 否 | 设置动态照片组件封面图片的RangeMode样式。 | 17 18## PixelMapFormat<sup>14+</sup> 19 20动态照片组件封面图片的解码格式。 21 22**系统接口**:此接口为系统接口。 23 24**系统能力:** SystemCapability.FileManagement.PhotoAccessHelper.Core 25 26| 名称 | 值 | 说明 | 27| ---------------------- | ------ | ----------------- | 28| UNKNOWN | 0 | 未知格式。| 29| RGBA_8888 | 1 | 格式为RGBA_8888。| 30| NV21 | 2 | 格式为NV21。 | 31| RGBA_1010102 | 3 | 格式为RGBA_1010102。| 32| YCBCR_P010 | 4 | 格式为YCBCR_P010。| 33| YCRCB_P010 | 5 | 格式为YCRCB_P010。 | 34 35## DynamicRangeMode<sup>14+</sup> 36 37动态照片组件封面图片的可使用的扩展范围,决定了图片的显示效果。 38 39**系统接口**:此接口为系统接口。 40 41**系统能力:** SystemCapability.FileManagement.PhotoAccessHelper.Core 42 43| 名称 | 值 | 说明 | 44| ---------------------- | ------ | ----------------- | 45| HIGH | 0 | 允许图像内容使用不受限制的扩展范围,显示HDR效果,建议使用的解码格式YCBCR_P010。| 46| CONSTRAINT | 1 | 允许图像内容使用一些扩展范围。| 47| STANDARD | 2 | 允许图像内容动态单位限制在标准范围内,显示SDR效果,需要使用的解码格式UNKNOWN或者RGBA_8888。| 48 49## 示例1:系统应用设置动态照片解码格式和rangemode格式 50 51```ts 52// 该示例只展示参数用法,具体可以执行用例参考动态照片公开接口文档 53import { photoAccessHelper, MovingPhotoView, MovingPhotoViewController, MovingPhotoViewAttribute } from '@kit.MediaLibraryKit'; 54import { PixelMapFormat, DynamicRangeMode } from '@ohos.multimedia.movingphotoview'; 55 56let data: photoAccessHelper.MovingPhoto 57async function loading(context: Context) { 58 try { 59 // 需要确保imageFileUri和videoFileUri对应的资源在应用沙箱存在 60 let imageFileUri = 'file://{bundleName}/data/storage/el2/base/haps/entry/files/xxx.jpg'; 61 let videoFileUri = 'file://{bundleName}/data/storage/el2/base/haps/entry/files/xxx.mp4'; 62 data = await photoAccessHelper.MediaAssetManager.loadMovingPhoto(context, imageFileUri, videoFileUri); 63 console.info('load moving photo successfully'); 64 } catch (err) { 65 console.error(`load moving photo failed with error: ${err.code}, ${err.message}`); 66 } 67} 68@Entry 69@Component 70struct Index { 71 controller: MovingPhotoViewController = new MovingPhotoViewController(); 72 format: undefined | PixelMapFormat = PixelMapFormat.YCBCR_P010; 73 mode: undefined | DynamicRangeMode = DynamicRangeMode.HIGH; 74 private uiContext: UIContext = this.getUIContext() 75 aboutToAppear(): void { 76 loading(this.uiContext.getHostContext()!) 77 } 78 79 build() { 80 NavDestination() { 81 Column() { 82 Stack({ alignContent: Alignment.BottomStart }) { 83 MovingPhotoView({ 84 movingPhoto: data, 85 controller: this.controller, 86 movingPhotoFormat: this.format, 87 dynamicRangeMode: this.mode 88 }) 89 } 90 } 91 } 92 } 93} 94```