1# @ohos.multimedia.movingphotoview (动态照片)(系统接口) 2<!--Kit: Media Library Kit--> 3<!--Subsystem: FileManagement--> 4<!--Owner: @tangye123456--> 5<!--Designer: @YanSanzo--> 6<!--Tester: @tinygreyy--> 7<!--Adviser: @zengyawen--> 8 9用于播放动态照片文件并控制其播放状态的组件。 10 11> **说明:** 12> 13> - 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 14> - 当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.multimedia.movingphotoview (动态照片)](ohos-multimedia-movingphotoview.md)。 15 16## MovingPhotoViewOptions 17 18 19| 参数名 | 参数类型 | 必填 | 参数描述 | 20| ----------- | ------------------------------------------------------------------------------------------------ | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------- | 21| movingPhotoFormat<sup>14+</sup> | [PixelMapFormat](#pixelmapformat14) | 否 | 设置动态照片组件封面图片的解码格式。 | 22| dynamicRangeMode<sup>14+</sup> | [DynamicRangeMode](#dynamicrangemode14) | 否 | 设置动态照片组件封面图片的RangeMode样式。 | 23| playWithMask<sup>19+</sup> | boolean | 否 | 带有水印的动态照片播放时是否保留水印显示。<br/>默认值:false。<br/>false:播放时保持宽高比撑满组件,不展示水印信息。<br/>true:播放时不遮挡封面照片的水印,展示水印信息。|| 24 25## PixelMapFormat<sup>14+</sup> 26 27动态照片组件封面图片的解码格式。 28 29**系统接口**:此接口为系统接口。 30 31**系统能力:** SystemCapability.FileManagement.PhotoAccessHelper.Core 32 33| 名称 | 值 | 说明 | 34| ---------------------- | ------ | ----------------- | 35| UNKNOWN | 0 | 未知格式。| 36| RGBA_8888 | 1 | 格式为RGBA_8888。| 37| NV21 | 2 | 格式为NV21。 | 38| RGBA_1010102 | 3 | 格式为RGBA_1010102。| 39| YCBCR_P010 | 4 | 格式为YCBCR_P010。| 40| YCRCB_P010 | 5 | 格式为YCRCB_P010。 | 41 42## DynamicRangeMode<sup>14+</sup> 43 44动态照片组件封面图片的可使用的扩展范围,决定了图片的显示效果。 45 46**系统接口**:此接口为系统接口。 47 48**系统能力:** SystemCapability.FileManagement.PhotoAccessHelper.Core 49 50| 名称 | 值 | 说明 | 51| ---------------------- | ------ | ----------------- | 52| HIGH | 0 | 允许图像内容使用不受限制的扩展范围,显示HDR效果,建议使用的解码格式YCBCR_P010。| 53| CONSTRAINT | 1 | 允许图像内容使用一些扩展范围。| 54| STANDARD | 2 | 允许图像内容动态单位限制在标准范围内,显示SDR效果,需要使用的解码格式UNKNOWN或者RGBA_8888。| 55 56## 示例1:系统应用设置动态照片解码格式和rangemode格式 57 58```ts 59// 该示例只展示参数用法,具体可以执行用例参考动态照片公开接口文档 60import { photoAccessHelper, MovingPhotoView, MovingPhotoViewController, MovingPhotoViewAttribute } from '@kit.MediaLibraryKit'; 61import { PixelMapFormat, DynamicRangeMode } from '@ohos.multimedia.movingphotoview'; 62 63let data: photoAccessHelper.MovingPhoto 64async function loading(context: Context) { 65 try { 66 // 需要确保imageFileUri和videoFileUri对应的资源在应用沙箱存在 67 let imageFileUri = 'file://{bundleName}/data/storage/el2/base/haps/entry/files/xxx.jpg'; 68 let videoFileUri = 'file://{bundleName}/data/storage/el2/base/haps/entry/files/xxx.mp4'; 69 data = await photoAccessHelper.MediaAssetManager.loadMovingPhoto(context, imageFileUri, videoFileUri); 70 console.info('load moving photo successfully'); 71 } catch (err) { 72 console.error(`load moving photo failed with error: ${err.code}, ${err.message}`); 73 } 74} 75@Entry 76@Component 77struct Index { 78 controller: MovingPhotoViewController = new MovingPhotoViewController(); 79 format: undefined | PixelMapFormat = PixelMapFormat.YCBCR_P010; 80 mode: undefined | DynamicRangeMode = DynamicRangeMode.HIGH; 81 private uiContext: UIContext = this.getUIContext() 82 aboutToAppear(): void { 83 loading(this.uiContext.getHostContext()!) 84 } 85 86 build() { 87 NavDestination() { 88 Column() { 89 Stack({ alignContent: Alignment.BottomStart }) { 90 MovingPhotoView({ 91 movingPhoto: data, 92 controller: this.controller, 93 movingPhotoFormat: this.format, 94 dynamicRangeMode: this.mode, 95 playWithMask: false 96 }) 97 } 98 } 99 } 100 } 101} 102``` 103 104## MovingPhotoViewController<sup>12+</sup> 105 106一个MovingPhotoViewController对象可以控制一个MovingPhotoView,可用视频播放实例请参考[媒体业务模块](../apis-media-kit/arkts-apis-media.md)。 107 108### pausePlayback<sup>20+</sup> 109 110pausePlayback() 111 112停止播放时显示当前帧,再次播放时从当前帧开始播放。 113 114**系统接口:** 该接口为系统接口。 115 116**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 117 118**系统能力:** SystemCapability.FileManagement.PhotoAccessHelper.Core 119 120**错误码:** 121 122以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 123 124| 错误码ID | 错误信息 | 125| -------- | ---------------------------------------- | 126| 202 | Non-system applications are not allowed to use system APIs. | 127 128### reset<sup>20+</sup> 129 130reset() 131 132重置播放时显示封面帧,再次播放时从头开始播放。 133 134**系统接口:** 该接口为系统接口。 135 136**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 137 138**系统能力:** SystemCapability.FileManagement.PhotoAccessHelper.Core 139 140**错误码:** 141 142以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 143 144| 错误码ID | 错误信息 | 145| -------- | ---------------------------------------- | 146| 202 | Non-system applications are not allowed to use system APIs. | 147 148### restart<sup>20+</sup> 149 150restart() 151 152重启播放视频,继承当前播放区间和播放模式参数。 153 154**系统接口:** 该接口为系统接口。 155 156**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 157 158**系统能力:** SystemCapability.FileManagement.PhotoAccessHelper.Core 159 160**错误码:** 161 162以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 163 164| 错误码ID | 错误信息 | 165| -------- | ---------------------------------------- | 166| 202 | Non-system applications are not allowed to use system APIs. | 167 168### setPlaybackPeriod<sup>20+</sup> 169 170setPlaybackPeriod(startTime: number, endTime: number) 171 172设置播放区间,再次播放时生效。 173 174**系统接口:** 该接口为系统接口。 175 176**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 177 178**系统能力:** SystemCapability.FileManagement.PhotoAccessHelper.Core 179 180| 参数名 | 类型 | 必填 | 说明 | 181| ------- | ------- | ---- | ---------------------------- | 182| startTime| number| 是 | 区间播放开始时间,单位:ms。取值范围:大于等于0。| 183| endTime| number| 是 | 区间播放结束时间,单位:ms。取值范围:大于startTime。 | 184 185**错误码:** 186 187以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 188 189| 错误码ID | 错误信息 | 190| -------- | ---------------------------------------- | 191| 202 | Non-system applications are not allowed to use system APIs. | 192 193### enableTransition<sup>20+</sup> 194 195enableTransition(enabled: boolean) 196 197关闭视频启动播放时的放大效果,再次播放时生效。 198 199**系统接口:** 该接口为系统接口。 200 201**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 202 203**系统能力:** SystemCapability.FileManagement.PhotoAccessHelper.Core 204 205| 参数名 | 类型 | 必填 | 说明 | 206| ------- | ------- | ---- | ---------------------------- | 207| enabled| boolean| 是 | 是否开启放大过渡效果。true表示开启,false表示不开启。<br></div>默认值:true。| 208 209**错误码:** 210 211以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 212 213| 错误码ID | 错误信息 | 214| -------- | ---------------------------------------- | 215| 202 | Non-system applications are not allowed to use system APIs. | 216 217### enableAutoPlay<sup>20+</sup> 218 219enableAutoPlay(enabled: boolean) 220 221控制动态照片数据中视频是否能够自动播放并自动播放一次。 222 223**系统接口:** 该接口为系统接口。 224 225**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 226 227**系统能力:** SystemCapability.FileManagement.PhotoAccessHelper.Core 228 229| 参数名 | 类型 | 必填 | 说明 | 230| ------- | ------- | ---- | ---------------------------- | 231| enabled| boolean| 是 | 是否能够自动播放。true表示能自动播放,false表示不能自动播放。<br></div>默认值:false。| 232 233**错误码:** 234 235以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 236 237| 错误码ID | 错误信息 | 238| -------- | ---------------------------------------- | 239| 202 | Non-system applications are not allowed to use system APIs. | 240