• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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