1e41f4b71Sopenharmony_ci# Video
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci用于播放视频文件并控制其播放状态的组件。 
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci>  **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci>  该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。<br/>
8e41f4b71Sopenharmony_ci>  Video组件只提供简单的视频播放功能,无法支撑复杂的视频播控场景。复杂开发场景推荐使用[AVPlayer播控API](../../apis-media-kit/js-apis-media.md#avplayer9)和[XComponent](ts-basic-components-xcomponent.md)组件开发。
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci## 权限列表
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci使用网络视频时,需要申请权限ohos.permission.INTERNET。具体申请方式请参考[声明权限](../../../security/AccessToken/declare-permissions.md)。
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci## 子组件
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci不支持子组件。
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci## 接口
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci### Video
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ciVideo(value: VideoOptions)
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci**参数:**
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
33e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
34e41f4b71Sopenharmony_ci| value | [VideoOptions](#videooptions对象说明) | 是 | 视频信息。 |
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci##  VideoOptions对象说明
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ci| 名称              | 类型                                                     | 必填 | 说明                                                     |
43e41f4b71Sopenharmony_ci| ------------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
44e41f4b71Sopenharmony_ci| src                 | string \| [Resource](ts-types.md#resource)                            | 否   | 视频的数据源,支持本地视频和网络视频。<br>Resource格式可以跨包/跨模块访问资源文件,常用于访问本地视频。<br/>- 支持rawfile文件下的资源,即通过$rawfile引用视频文件。<br/>string格式可用于加载网络视频和本地视频,常用于加载网络视频。<br/>- 支持网络视频地址。<br/>- 支持file://路径前缀的字符串,即[应用沙箱URI](../../apis-core-file-kit/js-apis-file-fileuri.md#constructor10):file://\<bundleName>/\<sandboxPath>。用于读取应用沙箱路径内的资源。需要保证目录包路径下的文件有可读权限。<br/>**说明:**<br/>视频支持的格式是:mp4、mkv、TS。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
45e41f4b71Sopenharmony_ci| currentProgressRate | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[PlaybackSpeed<sup>8+</sup>](#playbackspeed8枚举说明) | 否   | 视频播放倍速。<br/>**说明:**<br/>number取值仅支持:0.75,1.0,1.25,1.75,2.0。<br/>默认值:1.0 \| PlaybackSpeed.Speed_Forward_1_00_X<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
46e41f4b71Sopenharmony_ci| previewUri          | string&nbsp;\| [PixelMap](../../apis-image-kit/js-apis-image.md#pixelmap7)&nbsp;\|&nbsp;[Resource](ts-types.md)  | 否   | 视频未播放时的预览图片路径,默认不显示图片。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。                 |
47e41f4b71Sopenharmony_ci| controller          | [VideoController](#videocontroller)                          | 否   | 设置视频控制器,可以控制视频的播放状态。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。                     |
48e41f4b71Sopenharmony_ci| imageAIOptions<sup>12+</sup>  | [ImageAIOptions](ts-image-common.md#imageaioptions) | 否   | 设置图像AI分析选项,可配置分析类型或绑定一个分析控制器。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci## PlaybackSpeed<sup>8+</sup>枚举说明
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci| 名称                 | 说明           |
57e41f4b71Sopenharmony_ci| -------------------- | -------------- |
58e41f4b71Sopenharmony_ci| Speed_Forward_0_75_X | 0.75倍速播放。 |
59e41f4b71Sopenharmony_ci| Speed_Forward_1_00_X | 1倍速播放。    |
60e41f4b71Sopenharmony_ci| Speed_Forward_1_25_X | 1.25倍速播放。 |
61e41f4b71Sopenharmony_ci| Speed_Forward_1_75_X | 1.75倍速播放。 |
62e41f4b71Sopenharmony_ci| Speed_Forward_2_00_X | 2倍速播放。    |
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_ci## 属性
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci除支持[通用属性](ts-universal-attributes-size.md)外,还支持以下属性:
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci### muted
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_cimuted(value: boolean)
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci设置是否静音。
73e41f4b71Sopenharmony_ci
74e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
75e41f4b71Sopenharmony_ci
76e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ci**参数:** 
79e41f4b71Sopenharmony_ci
80e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                         |
81e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ---------------------------- |
82e41f4b71Sopenharmony_ci| value  | boolean | 是   | 是否静音。<br/>默认值:false |
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci### autoPlay
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ciautoPlay(value: boolean)
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci设置是否自动播放。
89e41f4b71Sopenharmony_ci
90e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
91e41f4b71Sopenharmony_ci
92e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
93e41f4b71Sopenharmony_ci
94e41f4b71Sopenharmony_ci**参数:** 
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                             |
97e41f4b71Sopenharmony_ci| ------ | ------- | ---- | -------------------------------- |
98e41f4b71Sopenharmony_ci| value  | boolean | 是   | 是否自动播放。<br/>默认值:false |
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci### controls
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_cicontrols(value: boolean)
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ci设置控制视频播放的控制栏是否显示。
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci**参数:** 
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                                            |
113e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ----------------------------------------------- |
114e41f4b71Sopenharmony_ci| value  | boolean | 是   | 控制视频播放的控制栏是否显示。<br/>默认值:true |
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci### objectFit
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ciobjectFit(value: ImageFit)
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci设置视频显示模式。
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
123e41f4b71Sopenharmony_ci
124e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci**参数:** 
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci| 参数名 | 类型                                      | 必填 | 说明                             |
129e41f4b71Sopenharmony_ci| ------ | ----------------------------------------- | ---- | -------------------------------- |
130e41f4b71Sopenharmony_ci| value  | [ImageFit](ts-appendix-enums.md#imagefit) | 是   | 视频显示模式。<br/>默认值:Cover |
131e41f4b71Sopenharmony_ci
132e41f4b71Sopenharmony_ci### loop
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_ciloop(value: boolean)
135e41f4b71Sopenharmony_ci
136e41f4b71Sopenharmony_ci设置是否单个视频循环播放。
137e41f4b71Sopenharmony_ci
138e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
139e41f4b71Sopenharmony_ci
140e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
141e41f4b71Sopenharmony_ci
142e41f4b71Sopenharmony_ci**参数:** 
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                                     |
145e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ---------------------------------------- |
146e41f4b71Sopenharmony_ci| value  | boolean | 是   | 是否单个视频循环播放。<br/>默认值:false |
147e41f4b71Sopenharmony_ci
148e41f4b71Sopenharmony_ci### enableAnalyzer<sup>12+</sup>
149e41f4b71Sopenharmony_ci
150e41f4b71Sopenharmony_cienableAnalyzer(enable: boolean)
151e41f4b71Sopenharmony_ci
152e41f4b71Sopenharmony_ci设置组件支持AI分析,当前支持主体识别、文字识别和对象查找等功能。
153e41f4b71Sopenharmony_ci使能后,视频播放暂停时自动进入分析状态,开始分析当前画面帧,视频继续播放后自动退出分析状态。
154e41f4b71Sopenharmony_ci不能和[overlay](ts-universal-attributes-overlay.md)属性同时使用,两者同时设置时overlay中CustomBuilder属性将失效。
155e41f4b71Sopenharmony_ci
156e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
157e41f4b71Sopenharmony_ci
158e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
159e41f4b71Sopenharmony_ci
160e41f4b71Sopenharmony_ci**参数:**
161e41f4b71Sopenharmony_ci
162e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
163e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
164e41f4b71Sopenharmony_ci| enable | boolean | 是 | 是否启用AI分析功能 |
165e41f4b71Sopenharmony_ci
166e41f4b71Sopenharmony_ci> **说明:**
167e41f4b71Sopenharmony_ci>
168e41f4b71Sopenharmony_ci> 当前仅在使用自定义控制栏([controls](#controls)属性设置为false)时支持该功能。
169e41f4b71Sopenharmony_ci> 该特性依赖设备能力。
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_ci### analyzerConfig<sup>12+</sup>
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_cianalyzerConfig(config: ImageAnalyzerConfig)
174e41f4b71Sopenharmony_ci
175e41f4b71Sopenharmony_ci设置AI分析识别类型,包括主体识别、文字识别和对象查找等功能。
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
182e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
183e41f4b71Sopenharmony_ci| config | [ImageAnalyzerConfig](ts-image-common.md#imageanalyzerconfig) | 是 | 设置AI分析识别类型 |
184e41f4b71Sopenharmony_ci
185e41f4b71Sopenharmony_ci## 事件
186e41f4b71Sopenharmony_ci
187e41f4b71Sopenharmony_ci除支持[通用事件](ts-universal-events-click.md)外,还支持以下事件:
188e41f4b71Sopenharmony_ci
189e41f4b71Sopenharmony_ci### onStart
190e41f4b71Sopenharmony_ci
191e41f4b71Sopenharmony_cionStart(event:()&nbsp;=&gt;&nbsp;void)
192e41f4b71Sopenharmony_ci
193e41f4b71Sopenharmony_ci播放时触发该事件。
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
196e41f4b71Sopenharmony_ci
197e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
198e41f4b71Sopenharmony_ci
199e41f4b71Sopenharmony_ci### onPause
200e41f4b71Sopenharmony_ci
201e41f4b71Sopenharmony_cionPause(event:()&nbsp;=&gt;&nbsp;void)
202e41f4b71Sopenharmony_ci
203e41f4b71Sopenharmony_ci暂停时触发该事件。
204e41f4b71Sopenharmony_ci
205e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
206e41f4b71Sopenharmony_ci
207e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
208e41f4b71Sopenharmony_ci
209e41f4b71Sopenharmony_ci### onFinish
210e41f4b71Sopenharmony_ci
211e41f4b71Sopenharmony_cionFinish(event:()&nbsp;=&gt;&nbsp;void)
212e41f4b71Sopenharmony_ci
213e41f4b71Sopenharmony_ci播放结束时触发该事件。
214e41f4b71Sopenharmony_ci
215e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
216e41f4b71Sopenharmony_ci
217e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
218e41f4b71Sopenharmony_ci
219e41f4b71Sopenharmony_ci### onError
220e41f4b71Sopenharmony_ci
221e41f4b71Sopenharmony_cionError(event:()&nbsp;=&gt;&nbsp;void)
222e41f4b71Sopenharmony_ci
223e41f4b71Sopenharmony_ci播放失败时触发该事件。
224e41f4b71Sopenharmony_ci
225e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
228e41f4b71Sopenharmony_ci
229e41f4b71Sopenharmony_ci### onStop<sup>12+</sup>
230e41f4b71Sopenharmony_ci
231e41f4b71Sopenharmony_cionStop(event: Callback&lt;void&gt;)
232e41f4b71Sopenharmony_ci
233e41f4b71Sopenharmony_ci播放停止时触发该事件(当stop()方法被调用后触发)。
234e41f4b71Sopenharmony_ci
235e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
236e41f4b71Sopenharmony_ci
237e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
238e41f4b71Sopenharmony_ci
239e41f4b71Sopenharmony_ci### onPrepared
240e41f4b71Sopenharmony_ci
241e41f4b71Sopenharmony_cionPrepared(callback:(event:&nbsp;{&nbsp;duration:&nbsp;number&nbsp;})&nbsp;=&gt;&nbsp;void)
242e41f4b71Sopenharmony_ci
243e41f4b71Sopenharmony_ci视频准备完成时触发该事件。
244e41f4b71Sopenharmony_ci
245e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
246e41f4b71Sopenharmony_ci
247e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
248e41f4b71Sopenharmony_ci
249e41f4b71Sopenharmony_ci**参数:** 
250e41f4b71Sopenharmony_ci
251e41f4b71Sopenharmony_ci| 参数名   | 类型   | 必填 | 说明                       |
252e41f4b71Sopenharmony_ci| -------- | ------ | ---- | -------------------------- |
253e41f4b71Sopenharmony_ci| duration | number | 是   | 当前视频的时长,单位为秒。 |
254e41f4b71Sopenharmony_ci
255e41f4b71Sopenharmony_ci### onSeeking
256e41f4b71Sopenharmony_ci
257e41f4b71Sopenharmony_cionSeeking(callback:(event:&nbsp;{&nbsp;time:&nbsp;number&nbsp;})&nbsp;=&gt;&nbsp;void)
258e41f4b71Sopenharmony_ci
259e41f4b71Sopenharmony_ci操作进度条过程时上报时间信息。
260e41f4b71Sopenharmony_ci
261e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
262e41f4b71Sopenharmony_ci
263e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
264e41f4b71Sopenharmony_ci
265e41f4b71Sopenharmony_ci**参数:** 
266e41f4b71Sopenharmony_ci
267e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                           |
268e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------ |
269e41f4b71Sopenharmony_ci| time   | number | 是   | 当前视频播放的进度,单位为秒。 |
270e41f4b71Sopenharmony_ci
271e41f4b71Sopenharmony_ci### onSeeked
272e41f4b71Sopenharmony_ci
273e41f4b71Sopenharmony_cionSeeked(callback:(event:&nbsp;{&nbsp;time:&nbsp;number&nbsp;})&nbsp;=&gt;&nbsp;void)
274e41f4b71Sopenharmony_ci
275e41f4b71Sopenharmony_ci操作进度条完成后,上报播放时间信息。
276e41f4b71Sopenharmony_ci
277e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
278e41f4b71Sopenharmony_ci
279e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
280e41f4b71Sopenharmony_ci
281e41f4b71Sopenharmony_ci**参数:** 
282e41f4b71Sopenharmony_ci
283e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                           |
284e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------ |
285e41f4b71Sopenharmony_ci| time   | number | 是   | 当前视频播放的进度,单位为秒。 |
286e41f4b71Sopenharmony_ci
287e41f4b71Sopenharmony_ci### onUpdate
288e41f4b71Sopenharmony_ci
289e41f4b71Sopenharmony_cionUpdate(callback:(event:&nbsp;{&nbsp;time:&nbsp;number&nbsp;})&nbsp;=&gt;&nbsp;void)
290e41f4b71Sopenharmony_ci
291e41f4b71Sopenharmony_ci播放进度变化时触发该事件。
292e41f4b71Sopenharmony_ci
293e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
294e41f4b71Sopenharmony_ci
295e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
296e41f4b71Sopenharmony_ci
297e41f4b71Sopenharmony_ci**参数:** 
298e41f4b71Sopenharmony_ci
299e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                           |
300e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------ |
301e41f4b71Sopenharmony_ci| time   | number | 是   | 当前视频播放的进度,单位为秒。 |
302e41f4b71Sopenharmony_ci
303e41f4b71Sopenharmony_ci### onFullscreenChange
304e41f4b71Sopenharmony_ci
305e41f4b71Sopenharmony_cionFullscreenChange(callback:(event:&nbsp;{&nbsp;fullscreen:&nbsp;boolean&nbsp;})&nbsp;=&gt;&nbsp;void)
306e41f4b71Sopenharmony_ci
307e41f4b71Sopenharmony_ci在全屏播放与非全屏播放状态之间切换时触发该事件。
308e41f4b71Sopenharmony_ci
309e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
310e41f4b71Sopenharmony_ci
311e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
312e41f4b71Sopenharmony_ci
313e41f4b71Sopenharmony_ci**参数:** 
314e41f4b71Sopenharmony_ci
315e41f4b71Sopenharmony_ci| 参数名     | 类型    | 必填 | 说明                                                  |
316e41f4b71Sopenharmony_ci| ---------- | ------- | ---- | ----------------------------------------------------- |
317e41f4b71Sopenharmony_ci| fullscreen | boolean | 是   | 为true表示进入全屏播放状态,为false则表示非全屏播放。 |
318e41f4b71Sopenharmony_ci
319e41f4b71Sopenharmony_ci
320e41f4b71Sopenharmony_ci## VideoController
321e41f4b71Sopenharmony_ci
322e41f4b71Sopenharmony_ci一个VideoController对象可以控制一个或多个video,可用视频播放实例请参考[@ohos.multimedia.media](../../apis-media-kit/js-apis-media.md)。
323e41f4b71Sopenharmony_ci
324e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
325e41f4b71Sopenharmony_ci
326e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
327e41f4b71Sopenharmony_ci
328e41f4b71Sopenharmony_ci### 导入对象
329e41f4b71Sopenharmony_ci
330e41f4b71Sopenharmony_ci```ts
331e41f4b71Sopenharmony_cilet controller: VideoController = new VideoController()
332e41f4b71Sopenharmony_ci```
333e41f4b71Sopenharmony_ci
334e41f4b71Sopenharmony_ci### constructor
335e41f4b71Sopenharmony_ci
336e41f4b71Sopenharmony_ciconstructor()
337e41f4b71Sopenharmony_ci
338e41f4b71Sopenharmony_ciVideoController的构造函数。
339e41f4b71Sopenharmony_ci
340e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
341e41f4b71Sopenharmony_ci
342e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
343e41f4b71Sopenharmony_ci
344e41f4b71Sopenharmony_ci### start
345e41f4b71Sopenharmony_ci
346e41f4b71Sopenharmony_cistart()
347e41f4b71Sopenharmony_ci
348e41f4b71Sopenharmony_ci开始播放。
349e41f4b71Sopenharmony_ci
350e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
351e41f4b71Sopenharmony_ci
352e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
353e41f4b71Sopenharmony_ci
354e41f4b71Sopenharmony_ci### pause
355e41f4b71Sopenharmony_ci
356e41f4b71Sopenharmony_cipause()
357e41f4b71Sopenharmony_ci
358e41f4b71Sopenharmony_ci暂停播放,显示当前帧,再次播放时从当前位置继续播放。
359e41f4b71Sopenharmony_ci
360e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
361e41f4b71Sopenharmony_ci
362e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
363e41f4b71Sopenharmony_ci
364e41f4b71Sopenharmony_ci### stop
365e41f4b71Sopenharmony_ci
366e41f4b71Sopenharmony_cistop()
367e41f4b71Sopenharmony_ci
368e41f4b71Sopenharmony_ci停止播放,显示当前帧,再次播放时从头开始播放。
369e41f4b71Sopenharmony_ci
370e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
371e41f4b71Sopenharmony_ci
372e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
373e41f4b71Sopenharmony_ci
374e41f4b71Sopenharmony_ci### reset<sup>12+</sup>
375e41f4b71Sopenharmony_ci
376e41f4b71Sopenharmony_cireset(): void
377e41f4b71Sopenharmony_ci
378e41f4b71Sopenharmony_civideo组件重置AVPlayer。显示当前帧,再次播放时从头开始播放。
379e41f4b71Sopenharmony_ci
380e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
381e41f4b71Sopenharmony_ci
382e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
383e41f4b71Sopenharmony_ci
384e41f4b71Sopenharmony_ci### setCurrentTime
385e41f4b71Sopenharmony_ci
386e41f4b71Sopenharmony_cisetCurrentTime(value: number)
387e41f4b71Sopenharmony_ci
388e41f4b71Sopenharmony_ci指定视频播放的进度位置。
389e41f4b71Sopenharmony_ci
390e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
391e41f4b71Sopenharmony_ci
392e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
393e41f4b71Sopenharmony_ci
394e41f4b71Sopenharmony_ci**参数:**
395e41f4b71Sopenharmony_ci
396e41f4b71Sopenharmony_ci| 参数名   | 类型   | 必填   | 说明           |
397e41f4b71Sopenharmony_ci| ----- | ------ | ---- | -------------- |
398e41f4b71Sopenharmony_ci| value | number | 是    | 视频播放进度位置,单位为s。 |
399e41f4b71Sopenharmony_ci
400e41f4b71Sopenharmony_ci### requestFullscreen
401e41f4b71Sopenharmony_ci
402e41f4b71Sopenharmony_cirequestFullscreen(value: boolean)
403e41f4b71Sopenharmony_ci
404e41f4b71Sopenharmony_ci请求全屏播放。
405e41f4b71Sopenharmony_ci
406e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
407e41f4b71Sopenharmony_ci
408e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
409e41f4b71Sopenharmony_ci
410e41f4b71Sopenharmony_ci**参数:**
411e41f4b71Sopenharmony_ci
412e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                         |
413e41f4b71Sopenharmony_ci| ------ | -------- | ---- | -------------------------------- |
414e41f4b71Sopenharmony_ci| value  | boolean  | 是   | 是否全屏(填充满应用窗口)播放。 |
415e41f4b71Sopenharmony_ci
416e41f4b71Sopenharmony_ci### exitFullscreen
417e41f4b71Sopenharmony_ci
418e41f4b71Sopenharmony_ciexitFullscreen()
419e41f4b71Sopenharmony_ci
420e41f4b71Sopenharmony_ci退出全屏播放。
421e41f4b71Sopenharmony_ci
422e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
423e41f4b71Sopenharmony_ci
424e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
425e41f4b71Sopenharmony_ci
426e41f4b71Sopenharmony_ci### setCurrentTime<sup>8+</sup>
427e41f4b71Sopenharmony_ci
428e41f4b71Sopenharmony_cisetCurrentTime(value: number, seekMode: SeekMode)
429e41f4b71Sopenharmony_ci
430e41f4b71Sopenharmony_ci指定视频播放的进度位置,并指定跳转模式。
431e41f4b71Sopenharmony_ci
432e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
433e41f4b71Sopenharmony_ci
434e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
435e41f4b71Sopenharmony_ci
436e41f4b71Sopenharmony_ci**参数:**
437e41f4b71Sopenharmony_ci
438e41f4b71Sopenharmony_ci| 参数名      | 类型     | 必填   | 说明           |
439e41f4b71Sopenharmony_ci| -------- | -------- | ---- | -------------- |
440e41f4b71Sopenharmony_ci| value    | number   | 是    | 视频播放进度位置,单位为s。 |
441e41f4b71Sopenharmony_ci| seekMode | [SeekMode](#seekmode8枚举说明) | 是    | 跳转模式。          |
442e41f4b71Sopenharmony_ci
443e41f4b71Sopenharmony_ci## SeekMode<sup>8+</sup>枚举说明
444e41f4b71Sopenharmony_ci
445e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
446e41f4b71Sopenharmony_ci
447e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
448e41f4b71Sopenharmony_ci
449e41f4b71Sopenharmony_ci| 名称             | 说明                         |
450e41f4b71Sopenharmony_ci| ---------------- | ---------------------------- |
451e41f4b71Sopenharmony_ci| PreviousKeyframe | 跳转到前一个最近的关键帧。   |
452e41f4b71Sopenharmony_ci| NextKeyframe     | 跳转到后一个最近的关键帧。   |
453e41f4b71Sopenharmony_ci| ClosestKeyframe  | 跳转到最近的关键帧。         |
454e41f4b71Sopenharmony_ci| Accurate         | 精准跳转,不论是否为关键帧。 |
455e41f4b71Sopenharmony_ci
456e41f4b71Sopenharmony_ci## 示例
457e41f4b71Sopenharmony_ci
458e41f4b71Sopenharmony_ci### 示例1
459e41f4b71Sopenharmony_ci
460e41f4b71Sopenharmony_ci```ts
461e41f4b71Sopenharmony_ci// xxx.ets
462e41f4b71Sopenharmony_ci@Entry
463e41f4b71Sopenharmony_ci@Component
464e41f4b71Sopenharmony_cistruct VideoCreateComponent {
465e41f4b71Sopenharmony_ci  @State videoSrc: Resource = $rawfile('video1.mp4')
466e41f4b71Sopenharmony_ci  @State previewUri: Resource = $r('app.media.poster1')
467e41f4b71Sopenharmony_ci  @State curRate: PlaybackSpeed = PlaybackSpeed.Speed_Forward_1_00_X
468e41f4b71Sopenharmony_ci  @State isAutoPlay: boolean = false
469e41f4b71Sopenharmony_ci  @State showControls: boolean = true
470e41f4b71Sopenharmony_ci  controller: VideoController = new VideoController()
471e41f4b71Sopenharmony_ci
472e41f4b71Sopenharmony_ci  build() {
473e41f4b71Sopenharmony_ci    Column() {
474e41f4b71Sopenharmony_ci      Video({
475e41f4b71Sopenharmony_ci        src: this.videoSrc,
476e41f4b71Sopenharmony_ci        previewUri: this.previewUri,
477e41f4b71Sopenharmony_ci        currentProgressRate: this.curRate,
478e41f4b71Sopenharmony_ci        controller: this.controller
479e41f4b71Sopenharmony_ci      })
480e41f4b71Sopenharmony_ci        .width('100%')
481e41f4b71Sopenharmony_ci        .height(600)
482e41f4b71Sopenharmony_ci        .autoPlay(this.isAutoPlay)
483e41f4b71Sopenharmony_ci        .controls(this.showControls)
484e41f4b71Sopenharmony_ci        .onStart(() => {
485e41f4b71Sopenharmony_ci          console.info('onStart')
486e41f4b71Sopenharmony_ci        })
487e41f4b71Sopenharmony_ci        .onPause(() => {
488e41f4b71Sopenharmony_ci          console.info('onPause')
489e41f4b71Sopenharmony_ci        })
490e41f4b71Sopenharmony_ci        .onFinish(() => {
491e41f4b71Sopenharmony_ci          console.info('onFinish')
492e41f4b71Sopenharmony_ci        })
493e41f4b71Sopenharmony_ci        .onError(() => {
494e41f4b71Sopenharmony_ci          console.info('onError')
495e41f4b71Sopenharmony_ci        })
496e41f4b71Sopenharmony_ci        .onStop(() => {
497e41f4b71Sopenharmony_ci          console.info('onStop')
498e41f4b71Sopenharmony_ci        })
499e41f4b71Sopenharmony_ci        .onPrepared((e?: DurationObject) => {
500e41f4b71Sopenharmony_ci          if (e != undefined) {
501e41f4b71Sopenharmony_ci            console.info('onPrepared is ' + e.duration)
502e41f4b71Sopenharmony_ci          }
503e41f4b71Sopenharmony_ci        })
504e41f4b71Sopenharmony_ci        .onSeeking((e?: TimeObject) => {
505e41f4b71Sopenharmony_ci          if (e != undefined) {
506e41f4b71Sopenharmony_ci            console.info('onSeeking is ' + e.time)
507e41f4b71Sopenharmony_ci          }
508e41f4b71Sopenharmony_ci        })
509e41f4b71Sopenharmony_ci        .onSeeked((e?: TimeObject) => {
510e41f4b71Sopenharmony_ci          if (e != undefined) {
511e41f4b71Sopenharmony_ci            console.info('onSeeked is ' + e.time)
512e41f4b71Sopenharmony_ci          }
513e41f4b71Sopenharmony_ci        })
514e41f4b71Sopenharmony_ci        .onUpdate((e?: TimeObject) => {
515e41f4b71Sopenharmony_ci          if (e != undefined) {
516e41f4b71Sopenharmony_ci            console.info('onUpdate is ' + e.time)
517e41f4b71Sopenharmony_ci          }
518e41f4b71Sopenharmony_ci        })
519e41f4b71Sopenharmony_ci
520e41f4b71Sopenharmony_ci      Row() {
521e41f4b71Sopenharmony_ci        Button('src').onClick(() => {
522e41f4b71Sopenharmony_ci          this.videoSrc = $rawfile('video2.mp4') // 切换视频源
523e41f4b71Sopenharmony_ci        }).margin(5)
524e41f4b71Sopenharmony_ci        Button('previewUri').onClick(() => {
525e41f4b71Sopenharmony_ci          this.previewUri = $r('app.media.poster2') // 切换视频预览海报
526e41f4b71Sopenharmony_ci        }).margin(5)
527e41f4b71Sopenharmony_ci        Button('controls').onClick(() => {
528e41f4b71Sopenharmony_ci          this.showControls = !this.showControls // 切换是否显示视频控制栏
529e41f4b71Sopenharmony_ci        }).margin(5)
530e41f4b71Sopenharmony_ci      }
531e41f4b71Sopenharmony_ci
532e41f4b71Sopenharmony_ci      Row() {
533e41f4b71Sopenharmony_ci        Button('start').onClick(() => {
534e41f4b71Sopenharmony_ci          this.controller.start() // 开始播放
535e41f4b71Sopenharmony_ci        }).margin(2)
536e41f4b71Sopenharmony_ci        Button('pause').onClick(() => {
537e41f4b71Sopenharmony_ci          this.controller.pause() // 暂停播放
538e41f4b71Sopenharmony_ci        }).margin(2)
539e41f4b71Sopenharmony_ci        Button('stop').onClick(() => {
540e41f4b71Sopenharmony_ci          this.controller.stop() // 结束播放
541e41f4b71Sopenharmony_ci        }).margin(2)
542e41f4b71Sopenharmony_ci        Button('reset').onClick(() => {
543e41f4b71Sopenharmony_ci          this.controller.reset() // 重置AVPlayer
544e41f4b71Sopenharmony_ci        }).margin(2)
545e41f4b71Sopenharmony_ci        Button('setTime').onClick(() => {
546e41f4b71Sopenharmony_ci          this.controller.setCurrentTime(10, SeekMode.Accurate) // 精准跳转到视频的10s位置
547e41f4b71Sopenharmony_ci        }).margin(2)
548e41f4b71Sopenharmony_ci      }
549e41f4b71Sopenharmony_ci
550e41f4b71Sopenharmony_ci      Row() {
551e41f4b71Sopenharmony_ci        Button('rate 0.75').onClick(() => {
552e41f4b71Sopenharmony_ci          this.curRate = PlaybackSpeed.Speed_Forward_0_75_X // 0.75倍速播放
553e41f4b71Sopenharmony_ci        }).margin(5)
554e41f4b71Sopenharmony_ci        Button('rate 1').onClick(() => {
555e41f4b71Sopenharmony_ci          this.curRate = PlaybackSpeed.Speed_Forward_1_00_X // 原倍速播放
556e41f4b71Sopenharmony_ci        }).margin(5)
557e41f4b71Sopenharmony_ci        Button('rate 2').onClick(() => {
558e41f4b71Sopenharmony_ci          this.curRate = PlaybackSpeed.Speed_Forward_2_00_X // 2倍速播放
559e41f4b71Sopenharmony_ci        }).margin(5)
560e41f4b71Sopenharmony_ci      }
561e41f4b71Sopenharmony_ci    }
562e41f4b71Sopenharmony_ci  }
563e41f4b71Sopenharmony_ci}
564e41f4b71Sopenharmony_ci
565e41f4b71Sopenharmony_ciinterface DurationObject {
566e41f4b71Sopenharmony_ci  duration: number;
567e41f4b71Sopenharmony_ci}
568e41f4b71Sopenharmony_ci
569e41f4b71Sopenharmony_ciinterface TimeObject {
570e41f4b71Sopenharmony_ci  time: number;
571e41f4b71Sopenharmony_ci}
572e41f4b71Sopenharmony_ci```
573e41f4b71Sopenharmony_ci
574e41f4b71Sopenharmony_ci### 示例2
575e41f4b71Sopenharmony_ci
576e41f4b71Sopenharmony_ci图像分析功能使用示例。
577e41f4b71Sopenharmony_ci
578e41f4b71Sopenharmony_ci```ts
579e41f4b71Sopenharmony_ci// xxx.ets
580e41f4b71Sopenharmony_ci@Entry
581e41f4b71Sopenharmony_ci@Component
582e41f4b71Sopenharmony_cistruct ImageAnalyzerExample {
583e41f4b71Sopenharmony_ci  @State videoSrc: Resource = $rawfile('video1.mp4')
584e41f4b71Sopenharmony_ci  @State previewUri: Resource = $r('app.media.poster1')
585e41f4b71Sopenharmony_ci  @State showControls: boolean = true
586e41f4b71Sopenharmony_ci  controller: VideoController = new VideoController()
587e41f4b71Sopenharmony_ci  config: ImageAnalyzerConfig = {
588e41f4b71Sopenharmony_ci    types: [ImageAnalyzerType.SUBJECT, ImageAnalyzerType.TEXT]
589e41f4b71Sopenharmony_ci  }
590e41f4b71Sopenharmony_ci  private aiController: ImageAnalyzerController = new ImageAnalyzerController()
591e41f4b71Sopenharmony_ci  private options: ImageAIOptions = {
592e41f4b71Sopenharmony_ci    types: [ImageAnalyzerType.SUBJECT, ImageAnalyzerType.TEXT],
593e41f4b71Sopenharmony_ci    aiController: this.aiController
594e41f4b71Sopenharmony_ci  }
595e41f4b71Sopenharmony_ci
596e41f4b71Sopenharmony_ci  build() {
597e41f4b71Sopenharmony_ci    Column() {
598e41f4b71Sopenharmony_ci      Video({
599e41f4b71Sopenharmony_ci        src: this.videoSrc,
600e41f4b71Sopenharmony_ci        previewUri: this.previewUri,
601e41f4b71Sopenharmony_ci        controller: this.controller,
602e41f4b71Sopenharmony_ci        imageAIOptions: this.options
603e41f4b71Sopenharmony_ci      })
604e41f4b71Sopenharmony_ci        .width('100%')
605e41f4b71Sopenharmony_ci        .height(600)
606e41f4b71Sopenharmony_ci        .controls(false)
607e41f4b71Sopenharmony_ci        .enableAnalyzer(true)
608e41f4b71Sopenharmony_ci        .analyzerConfig(this.config)
609e41f4b71Sopenharmony_ci        .onStart(() => {
610e41f4b71Sopenharmony_ci          console.info('onStart')
611e41f4b71Sopenharmony_ci        })
612e41f4b71Sopenharmony_ci        .onPause(() => {
613e41f4b71Sopenharmony_ci          console.info('onPause')
614e41f4b71Sopenharmony_ci        })
615e41f4b71Sopenharmony_ci
616e41f4b71Sopenharmony_ci      Row() {
617e41f4b71Sopenharmony_ci        Button('start').onClick(() => {
618e41f4b71Sopenharmony_ci          this.controller.start() // 开始播放
619e41f4b71Sopenharmony_ci        }).margin(5)
620e41f4b71Sopenharmony_ci        Button('pause').onClick(() => {
621e41f4b71Sopenharmony_ci          this.controller.pause() // 暂停播放
622e41f4b71Sopenharmony_ci        }).margin(5)
623e41f4b71Sopenharmony_ci        Button('getTypes').onClick(() => {
624e41f4b71Sopenharmony_ci            this.aiController.getImageAnalyzerSupportTypes()
625e41f4b71Sopenharmony_ci        }).margin(5)
626e41f4b71Sopenharmony_ci      }
627e41f4b71Sopenharmony_ci    }
628e41f4b71Sopenharmony_ci  }
629e41f4b71Sopenharmony_ci}
630e41f4b71Sopenharmony_ci```