• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 废弃的Interface (VideoPlayer, deprecated)
2<!--Kit: Media Kit-->
3<!--Subsystem: Multimedia-->
4<!--Owner: @xushubo; @chennotfound-->
5<!--Designer: @dongyu_dy-->
6<!--Tester: @xchaosioda-->
7<!--Adviser: @zengyawen-->
8
9> **说明:**
10>
11> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer](arkts-apis-media-AVPlayer.md)替代。
12
13视频播放管理类,用于管理和播放视频媒体。在调用VideoPlayer的方法前,需要先通过[createVideoPlayer()](arkts-apis-media-f.md#mediacreatevideoplayerdeprecated)构建一个VideoPlayer实例。
14
15## 导入模块
16
17```ts
18import { media } from '@kit.MediaKit';
19```
20
21## 属性
22
23**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
24
25| 名称                            | 类型                                                   | 只读 | 可选 | 说明                                                         |
26| ------------------------------- | ------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
27| url<sup>8+</sup>                | string                                                 | 否   | 否   | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、mkv)。<br>**支持路径示例**:<br>1. fd类型播放:fd://xx<br>![](figures/zh-cn_image_url.png)<br>2. http网络播放: http\://xx<br/>3. https网络播放: https\://xx<br/>4. hls网络播放路径:http\://xx或者https\://xx<br>5. file类型: file\://xx<br/>**说明:**<br>从API version 11开始不支持webm。 |
28| fdSrc<sup>9+</sup>              | [AVFileDescriptor](arkts-apis-media-i.md#avfiledescriptor9)                 | 否   | 否   | 视频媒体文件描述,使用场景:应用中的视频资源被连续存储在同一个文件中。<br/>**使用示例**:<br/>假设一个连续存储的音乐文件: <br/>视频1(地址偏移:0,字节长度:100)<br/>视频2(地址偏移:101,字节长度:50)<br/>视频3(地址偏移:151,字节长度:150)<br/>1. 播放视频1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }<br/>2. 播放视频2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }<br/>3. 播放视频3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }<br/>假设是一个独立的视频文件: 请使用src=fd://xx <br/> |
29| loop<sup>8+</sup>               | boolean                                                | 否   | 否   | 视频循环播放属性,设置为'true'表示循环播放。                 |
30| videoScaleType<sup>9+</sup>     | [VideoScaleType](arkts-apis-media-e.md#videoscaletype9)                     | 否   | 是   | 视频缩放模式。默认值为VIDEO_SCALE_TYPE_FIT。                                               |
31| audioInterruptMode<sup>9+</sup> | [audio.InterruptMode](../apis-audio-kit/arkts-apis-audio-e.md#interruptmode9) | 否   | 是   | 音频焦点模型。                                               |
32| currentTime<sup>8+</sup>        | number                                                 | 是   | 否   | 视频的当前播放位置,单位为毫秒(ms)。                       |
33| duration<sup>8+</sup>           | number                                                 | 是   | 否   | 视频时长,单位为毫秒(ms),返回-1表示直播模式。             |
34| state<sup>8+</sup>              | [VideoPlayState](arkts-apis-media-t.md#videoplaystatedeprecated)                    | 是   | 否   | 视频播放的状态。                                             |
35| width<sup>8+</sup>              | number                                                 | 是   | 否   | 视频宽,单位为像素(px)。                                   |
36| height<sup>8+</sup>             | number                                                 | 是   | 否   | 视频高,单位为像素(px)。                                   |
37
38## setDisplaySurface<sup>(deprecated)</sup>
39
40setDisplaySurface(surfaceId: string, callback: AsyncCallback\<void>): void
41
42设置SurfaceId。通过回调函数获取返回值。
43
44*注意:SetDisplaySurface需要在设置url和Prepare之间,无音频的视频流必须设置Surface否则Prepare失败。
45
46> **说明:**
47> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.surfaceId](arkts-apis-media-AVPlayer.md#属性)替代。
48
49**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
50
51**参数:**
52
53| 参数名    | 类型                 | 必填 | 说明                      |
54| --------- | -------------------- | ---- | ------------------------- |
55| surfaceId | string               | 是   | 指定SurfaceId,应从XComponent组件获取,获取方式请参考[XComponent](../../reference/apis-arkui/arkui-ts/ts-basic-components-xcomponent.md)。                 |
56| callback  | AsyncCallback\<void> | 是   | 回调函数。当设置SurfaceId成功,err为undefined,否则为错误对象。 |
57
58**示例:**
59
60```ts
61import { BusinessError } from '@kit.BasicServicesKit';
62
63let surfaceId: string = '';
64videoPlayer.setDisplaySurface(surfaceId, (err: BusinessError) => {
65  if (err) {
66    console.error('Failed to set DisplaySurface!');
67  } else {
68    console.info('Succeeded in setting DisplaySurface!');
69  }
70});
71```
72
73## setDisplaySurface<sup>(deprecated)</sup>
74
75setDisplaySurface(surfaceId: string): Promise\<void>
76
77设置SurfaceId。通过Promise获取返回值。
78
79*注意:SetDisplaySurface需要在设置url和Prepare之间,无音频的视频流必须设置Surface否则Prepare失败。
80
81> **说明:**
82> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.surfaceId](arkts-apis-media-AVPlayer.md#属性)替代。
83
84**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
85
86**参数:**
87
88| 参数名    | 类型   | 必填 | 说明      |
89| --------- | ------ | ---- | --------- |
90| surfaceId | string | 是   | 指定SurfaceId,应从XComponent组件获取,获取方式请参考[XComponent](../../reference/apis-arkui/arkui-ts/ts-basic-components-xcomponent.md)。 |
91
92**返回值:**
93
94| 类型           | 说明                           |
95| -------------- | ------------------------------ |
96| Promise\<void> | 设置SurfaceId的Promise返回值。 |
97
98**示例:**
99
100```ts
101import { BusinessError } from '@kit.BasicServicesKit';
102
103let surfaceId: string = '';
104videoPlayer.setDisplaySurface(surfaceId).then(() => {
105  console.info('Succeeded in setting DisplaySurface');
106}).catch((error: BusinessError) => {
107  console.error(`video catchCallback, error:${error}`);
108});
109```
110
111## prepare<sup>(deprecated)</sup>
112
113prepare(callback: AsyncCallback\<void>): void
114
115准备播放视频。通过回调函数获取返回值。
116
117> **说明:**
118> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.prepare](arkts-apis-media-AVPlayer.md#prepare9)替代。
119
120**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
121
122**参数:**
123
124| 参数名   | 类型                 | 必填 | 说明                     |
125| -------- | -------------------- | ---- | ------------------------ |
126| callback | AsyncCallback\<void> | 是   | 回调函数。当准备播放视频成功,err为undefined,否则为错误对象。|
127
128**示例:**
129
130```ts
131import { BusinessError } from '@kit.BasicServicesKit';
132
133videoPlayer.prepare((err: BusinessError) => {
134  if (err) {
135    console.error('Failed to prepare!');
136  } else {
137    console.info('Succeeded in preparing!');
138  }
139});
140```
141
142## prepare<sup>(deprecated)</sup>
143
144prepare(): Promise\<void>
145
146准备播放视频。通过Promise获取返回值。
147
148> **说明:**
149> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.prepare](arkts-apis-media-AVPlayer.md#prepare9-1)替代。
150
151**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
152
153**返回值:**
154
155| 类型           | 说明                          |
156| -------------- | ----------------------------- |
157| Promise\<void> | 准备播放视频的Promise返回值。 |
158
159**示例:**
160
161```ts
162import { BusinessError } from '@kit.BasicServicesKit';
163
164videoPlayer.prepare().then(() => {
165  console.info('Succeeded in preparing');
166}).catch((error: BusinessError) => {
167  console.error(`video catchCallback, error:${error}`);
168});
169```
170
171## play<sup>(deprecated)</sup>
172
173play(callback: AsyncCallback\<void>): void
174
175开始播放视频。通过回调函数获取返回值。
176
177> **说明:**
178> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.play](arkts-apis-media-AVPlayer.md#play9)替代。
179
180**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
181
182**参数:**
183
184| 参数名   | 类型                 | 必填 | 说明                     |
185| -------- | -------------------- | ---- | ------------------------ |
186| callback | AsyncCallback\<void> | 是   | 回调函数。当开始播放视频成功,err为undefined,否则为错误对象。 |
187
188**示例:**
189
190```ts
191import { BusinessError } from '@kit.BasicServicesKit';
192
193videoPlayer.play((err: BusinessError) => {
194  if (err) {
195    console.error('Failed to play!');
196  } else {
197    console.info('Succeeded in playing!');
198  }
199});
200```
201
202## play<sup>(deprecated)</sup>
203
204play(): Promise\<void>
205
206开始播放视频。通过Promise获取返回值。
207
208> **说明:**
209> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.play](arkts-apis-media-AVPlayer.md#play9-1)替代。
210
211**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
212
213**返回值:**
214
215| 类型           | 说明                          |
216| -------------- | ----------------------------- |
217| Promise\<void> | 开始播放视频的Promise返回值。 |
218
219**示例:**
220
221```ts
222import { BusinessError } from '@kit.BasicServicesKit';
223
224videoPlayer.play().then(() => {
225  console.info('Succeeded in playing');
226}).catch((error: BusinessError) => {
227  console.error(`video catchCallback, error:${error}`);
228});
229```
230
231## pause<sup>(deprecated)</sup>
232
233pause(callback: AsyncCallback\<void>): void
234
235通过回调方式暂停播放视频。通过回调函数获取返回值。
236
237> **说明:**
238> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.pause](arkts-apis-media-AVPlayer.md#pause9)替代。
239
240**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
241
242**参数:**
243
244| 参数名   | 类型                 | 必填 | 说明                     |
245| -------- | -------------------- | ---- | ------------------------ |
246| callback | AsyncCallback\<void> | 是   | 回调函数。当暂停播放视频成功,err为undefined,否则为错误对象。 |
247
248**示例:**
249
250```ts
251import { BusinessError } from '@kit.BasicServicesKit';
252
253videoPlayer.pause((err: BusinessError) => {
254  if (err) {
255    console.error('Failed to pause!');
256  } else {
257    console.info('Succeeded in pausing!');
258  }
259});
260```
261
262## pause<sup>(deprecated)</sup>
263
264pause(): Promise\<void>
265
266暂停播放视频。通过Promise获取返回值。
267
268> **说明:**
269> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.pause](arkts-apis-media-AVPlayer.md#pause9-1)替代。
270
271**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
272
273**返回值:**
274
275| 类型           | 说明                          |
276| -------------- | ----------------------------- |
277| Promise\<void> | 暂停播放视频的Promise返回值。 |
278
279**示例:**
280
281```ts
282import { BusinessError } from '@kit.BasicServicesKit';
283
284videoPlayer.pause().then(() => {
285  console.info('Succeeded in pausing');
286}).catch((error: BusinessError) => {
287  console.error(`video catchCallback, error:${error}`);
288});
289```
290
291## stop<sup>(deprecated)</sup>
292
293stop(callback: AsyncCallback\<void>): void
294
295通过回调方式停止播放视频。通过回调函数获取返回值。
296
297> **说明:**
298> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.stop](arkts-apis-media-AVPlayer.md#stop9)替代。
299
300**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
301
302**参数:**
303
304| 参数名   | 类型                 | 必填 | 说明                     |
305| -------- | -------------------- | ---- | ------------------------ |
306| callback | AsyncCallback\<void> | 是   | 回调函数。当停止播放视频成功,err为undefined,否则为错误对象。 |
307
308**示例:**
309
310```ts
311import { BusinessError } from '@kit.BasicServicesKit';
312
313videoPlayer.stop((err: BusinessError) => {
314  if (err) {
315    console.error('Failed to stop!');
316  } else {
317    console.info('Succeeded in stopping!');
318  }
319});
320```
321
322## stop<sup>(deprecated)</sup>
323
324stop(): Promise\<void>
325
326停止播放视频。通过Promise获取返回值。
327
328> **说明:**
329> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.stop](arkts-apis-media-AVPlayer.md#stop9-1)替代。
330
331**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
332
333**返回值:**
334
335| 类型           | 说明                          |
336| -------------- | ----------------------------- |
337| Promise\<void> | 停止播放视频的Promise返回值。 |
338
339**示例:**
340
341```ts
342import { BusinessError } from '@kit.BasicServicesKit';
343
344videoPlayer.stop().then(() => {
345  console.info('Succeeded in stopping');
346}).catch((error: BusinessError) => {
347  console.error(`video catchCallback, error:${error}`);
348});
349```
350
351## reset<sup>(deprecated)</sup>
352
353reset(callback: AsyncCallback\<void>): void
354
355重置播放视频。通过回调函数获取返回值。
356
357> **说明:**
358> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.reset](arkts-apis-media-AVPlayer.md#reset9)替代。
359
360**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
361
362**参数:**
363
364| 参数名   | 类型                 | 必填 | 说明                     |
365| -------- | -------------------- | ---- | ------------------------ |
366| callback | AsyncCallback\<void> | 是   | 回调函数。当重置播放视频成功,err为undefined,否则为错误对象。 |
367
368**示例:**
369
370```ts
371import { BusinessError } from '@kit.BasicServicesKit';
372
373videoPlayer.reset((err: BusinessError) => {
374  if (err) {
375    console.error('Failed to reset!');
376  } else {
377    console.info('Succeeded in resetting!');
378  }
379});
380```
381
382## reset<sup>(deprecated)</sup>
383
384reset(): Promise\<void>
385
386重置播放视频。通过Promise获取返回值。
387
388> **说明:**
389> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.reset](arkts-apis-media-AVPlayer.md#reset9-1)替代。
390
391**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
392
393**返回值:**
394
395| 类型           | 说明                          |
396| -------------- | ----------------------------- |
397| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
398
399**示例:**
400
401```ts
402import { BusinessError } from '@kit.BasicServicesKit';
403
404videoPlayer.reset().then(() => {
405  console.info('Succeeded in resetting');
406}).catch((error: BusinessError) => {
407  console.error(`video catchCallback, error:${error}`);
408});
409```
410
411## seek<sup>(deprecated)</sup>
412
413seek(timeMs: number, callback: AsyncCallback\<number>): void
414
415跳转到指定播放位置,默认跳转到指定时间点的上一个关键帧。通过回调函数获取返回值。
416
417> **说明:**
418> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.seek](arkts-apis-media-AVPlayer.md#seek9)替代。
419
420**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
421
422**参数:**
423
424| 参数名   | 类型                   | 必填 | 说明                                                         |
425| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
426| timeMs   | number                 | 是   | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 |
427| callback | AsyncCallback\<number> | 是   | 回调函数。跳转到指定播放位置成功时,err为undefined,data为获取到的跳转到的播放位置,否则为错误对象。                               |
428
429**示例:**
430
431```ts
432import { BusinessError } from '@kit.BasicServicesKit';
433
434let videoPlayer: media.VideoPlayer;
435media.createVideoPlayer((error: BusinessError, video: media.VideoPlayer) => {
436  if (video != null) {
437    videoPlayer = video;
438    console.info('Succeeded in creating VideoPlayer');
439  } else {
440    console.error(`Failed to create VideoPlayer, error:${error}`);
441  }
442});
443
444let seekTime: number = 5000;
445videoPlayer.seek(seekTime, (err: BusinessError, result: number) => {
446  if (err) {
447    console.error('Failed to do seek!');
448  } else {
449    console.info('Succeeded in doing seek!');
450  }
451});
452```
453
454## seek<sup>(deprecated)</sup>
455
456seek(timeMs: number, mode:SeekMode, callback: AsyncCallback\<number>): void
457
458跳转到指定播放位置。通过回调函数获取返回值。
459
460> **说明:**
461> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.seek](arkts-apis-media-AVPlayer.md#seek9)替代。
462
463**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
464
465**参数:**
466
467| 参数名   | 类型                   | 必填 | 说明                                                         |
468| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
469| timeMs   | number                 | 是   | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 |
470| mode     | [SeekMode](arkts-apis-media-e.md#seekmode8) | 是   | 跳转模式。                                                   |
471| callback | AsyncCallback\<number> | 是   | 回调函数。跳转到指定播放位置成功时,err为undefined,data为获取到的跳转到的播放位置,否则为错误对象。                               |
472
473**示例:**
474
475```ts
476import { BusinessError } from '@kit.BasicServicesKit';
477
478let videoPlayer: media.VideoPlayer | null = null;
479media.createVideoPlayer((error: BusinessError, video: media.VideoPlayer) => {
480  if (video != null) {
481    videoPlayer = video;
482    console.info('Succeeded in creating VideoPlayer');
483  } else {
484    console.error(`Failed to create VideoPlayer, error:${error}`);
485  }
486});
487let seekTime: number = 5000;
488if (videoPlayer) {
489  (videoPlayer as media.VideoPlayer).seek(seekTime, media.SeekMode.SEEK_NEXT_SYNC, (err: BusinessError, result: number) => {
490    if (err) {
491      console.error('Failed to do seek!');
492    } else {
493      console.info('Succeeded in doing seek!');
494    }
495  });
496}
497```
498
499## seek<sup>(deprecated)</sup>
500
501seek(timeMs: number, mode?:SeekMode): Promise\<number>
502
503跳转到指定播放位置,如果没有设置mode则跳转到指定时间点的上一个关键帧。通过Promise获取返回值。
504
505> **说明:**
506> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.seek](arkts-apis-media-AVPlayer.md#seek9)替代。
507
508**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
509
510**参数:**
511
512| 参数名 | 类型                   | 必填 | 说明                                                         |
513| ------ | ---------------------- | ---- | ------------------------------------------------------------ |
514| timeMs | number                 | 是   | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 |
515| mode   | [SeekMode](arkts-apis-media-e.md#seekmode8) | 否   | 基于视频I帧的跳转模式,默认为SEEK_PREV_SYNC模式。            |
516
517**返回值:**
518
519| 类型             | 说明                                        |
520| ---------------- | ------------------------------------------- |
521| Promise\<number> | 跳转到指定播放位置的Promise返回值,单位ms。 |
522
523**示例:**
524
525```ts
526import { BusinessError } from '@kit.BasicServicesKit';
527
528let videoPlayer: media.VideoPlayer | null = null;
529media.createVideoPlayer((error: BusinessError, video: media.VideoPlayer) => {
530  if (video != null) {
531    videoPlayer = video;
532    console.info('Succeeded in creating VideoPlayer');
533  } else {
534    console.error(`Failed to create VideoPlayer, error:${error}`);
535  }
536});
537let seekTime: number = 5000;
538if (videoPlayer) {
539  (videoPlayer as media.VideoPlayer).seek(seekTime).then((seekDoneTime: number) => { // seekDoneTime表示seek完成后的时间点。
540    console.info('Succeeded in doing seek');
541  }).catch((error: BusinessError) => {
542    console.error(`video catchCallback, error:${error}`);
543  });
544
545  (videoPlayer as media.VideoPlayer).seek(seekTime, media.SeekMode.SEEK_NEXT_SYNC).then((seekDoneTime: number) => {
546    console.info('Succeeded in doing seek');
547  }).catch((error: BusinessError) => {
548    console.error(`video catchCallback, error:${error}`);
549  });
550}
551```
552
553## setVolume<sup>(deprecated)</sup>
554
555setVolume(vol: number, callback: AsyncCallback\<void>): void
556
557设置音量。通过回调函数获取返回值。
558
559> **说明:**
560> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.setVolume](arkts-apis-media-AVPlayer.md#setvolume9)替代。
561
562**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
563
564**参数:**
565
566| 参数名   | 类型                 | 必填 | 说明                                                         |
567| -------- | -------------------- | ---- | ------------------------------------------------------------ |
568| vol      | number               | 是   | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 |
569| callback | AsyncCallback\<void> | 是   | 回调函数。当设置音量成功,err为undefined,否则为错误对象。 |
570
571**示例:**
572
573```ts
574import { BusinessError } from '@kit.BasicServicesKit';
575
576let vol: number = 0.5;
577videoPlayer.setVolume(vol, (err: BusinessError) => {
578  if (err) {
579    console.error('Failed to set Volume!');
580  } else {
581    console.info('Succeeded in setting Volume!');
582  }
583});
584```
585
586## setVolume<sup>(deprecated)</sup>
587
588setVolume(vol: number): Promise\<void>
589
590设置音量。通过Promise获取返回值。
591
592> **说明:**
593> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.setVolume](arkts-apis-media-AVPlayer.md#setvolume9)替代。
594
595**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
596
597**参数:**
598
599| 参数名 | 类型   | 必填 | 说明                                                         |
600| ------ | ------ | ---- | ------------------------------------------------------------ |
601| vol    | number | 是   | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 |
602
603**返回值:**
604
605| 类型           | 说明                      |
606| -------------- | ------------------------- |
607| Promise\<void> | 设置音量的Promise返回值。 |
608
609**示例:**
610
611```ts
612import { BusinessError } from '@kit.BasicServicesKit';
613
614let vol: number = 0.5;
615videoPlayer.setVolume(vol).then(() => {
616  console.info('Succeeded in setting Volume');
617}).catch((error: BusinessError) => {
618  console.error(`video catchCallback, error:${error}`);
619});
620```
621
622## release<sup>(deprecated)</sup>
623
624release(callback: AsyncCallback\<void>): void
625
626释放视频资源。通过回调函数获取返回值。
627
628> **说明:**
629> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.release](arkts-apis-media-AVPlayer.md#release9)替代。
630
631**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
632
633**参数:**
634
635| 参数名   | 类型                 | 必填 | 说明                     |
636| -------- | -------------------- | ---- | ------------------------ |
637| callback | AsyncCallback\<void> | 是   | 回调函数。当释放视频资源成功,err为undefined,否则为错误对象。 |
638
639**示例:**
640
641```ts
642import { BusinessError } from '@kit.BasicServicesKit';
643
644videoPlayer.release((err: BusinessError) => {
645  if (err) {
646    console.error('Failed to release!');
647  } else {
648    console.info('Succeeded in releasing!');
649  }
650});
651```
652
653## release<sup>(deprecated)</sup>
654
655release(): Promise\<void>
656
657释放视频资源。通过Promise获取返回值。
658
659> **说明:**
660> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.release](arkts-apis-media-AVPlayer.md#release9-1)替代。
661
662**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
663
664**返回值:**
665
666| 类型           | 说明                          |
667| -------------- | ----------------------------- |
668| Promise\<void> | 释放视频资源的Promise返回值。 |
669
670**示例:**
671
672```ts
673import { BusinessError } from '@kit.BasicServicesKit';
674
675videoPlayer.release().then(() => {
676  console.info('Succeeded in releasing');
677}).catch((error: BusinessError) => {
678  console.error(`video catchCallback, error:${error}`);
679});
680```
681
682## getTrackDescription<sup>(deprecated)</sup>
683
684getTrackDescription(callback: AsyncCallback\<Array\<MediaDescription>>): void
685
686获取视频轨道信息。通过回调函数获取返回值。
687
688> **说明:**
689> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.getTrackDescription](arkts-apis-media-AVPlayer.md#gettrackdescription9)替代。
690
691**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
692
693**参数:**
694
695| 参数名   | 类型                                                         | 必填 | 说明                                       |
696| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------ |
697| callback | AsyncCallback\<Array\<[MediaDescription](arkts-apis-media-i.md#mediadescription8)>> | 是   | 回调函数。获取视频轨道信息成功时,err为undefined,data为获取到的视频轨道信息MediaDescription数组,否则为错误对象。 |
698
699**示例:**
700
701```ts
702import { BusinessError } from '@kit.BasicServicesKit';
703
704videoPlayer.getTrackDescription((error: BusinessError, arrList: Array<media.MediaDescription>) => {
705  if ((arrList) != null) {
706    console.info('Succeeded in getting TrackDescription');
707  } else {
708    console.error(`Failed to get TrackDescription, error:${error}`);
709  }
710});
711```
712
713## getTrackDescription<sup>(deprecated)</sup>
714
715getTrackDescription(): Promise\<Array\<MediaDescription>>
716
717获取视频轨道信息。通过Promise获取返回值。
718
719> **说明:**
720> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.getTrackDescription](arkts-apis-media-AVPlayer.md#gettrackdescription9-1)替代。
721
722**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
723
724**返回值:**
725
726| 类型                                                   | 说明                                            |
727| ------------------------------------------------------ | ----------------------------------------------- |
728| Promise<Array<[MediaDescription](arkts-apis-media-i.md#mediadescription8)>> | Promise对象,返回获取的视频轨道信息MediaDescription数组。 |
729
730**示例:**
731
732```ts
733import { BusinessError } from '@kit.BasicServicesKit';
734
735videoPlayer.getTrackDescription().then((arrList: Array<media.MediaDescription>) => {
736  if (arrList != null) {
737    console.info('Succeeded in getting TrackDescription');
738  } else {
739    console.error('Failed to get TrackDescription');
740  }
741}).catch((error: BusinessError) => {
742  console.error(`video catchCallback, error:${error}`);
743});
744```
745
746## setSpeed<sup>(deprecated)</sup>
747
748setSpeed(speed: number, callback: AsyncCallback\<number>): void
749
750设置播放速度。通过回调函数获取返回值。
751
752> **说明:**
753> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.setSpeed](arkts-apis-media-AVPlayer.md#setspeed9)替代。
754
755**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
756
757**参数:**
758
759| 参数名   | 类型                   | 必填 | 说明                                                       |
760| -------- | ---------------------- | ---- | ---------------------------------------------------------- |
761| speed    | number                 | 是   | 指定播放视频速度,具体见[PlaybackSpeed](arkts-apis-media-e.md#playbackspeed8)。 |
762| callback | AsyncCallback\<number> | 是   | 回调函数。设置播放速度成功时,err为undefined,data为设置的播放速度,否则为错误对象。                                   |
763
764**示例:**
765
766```ts
767import { BusinessError } from '@kit.BasicServicesKit';
768
769let videoPlayer: media.VideoPlayer | null = null;
770media.createVideoPlayer((error: BusinessError, video: media.VideoPlayer) => {
771  if (video != null) {
772    videoPlayer = video;
773    console.info('Succeeded in creating VideoPlayer');
774  } else {
775    console.error(`Failed to create VideoPlayer, error:${error}`);
776  }
777});
778let speed = media.PlaybackSpeed.SPEED_FORWARD_2_00_X;
779if (videoPlayer) {
780  (videoPlayer as media.VideoPlayer).setSpeed(speed, (err: BusinessError, result: number) => {
781    if (err) {
782      console.error('Failed to set Speed!');
783    } else {
784      console.info('Succeeded in setting Speed!');
785    }
786  });
787}
788```
789
790## setSpeed<sup>(deprecated)</sup>
791
792setSpeed(speed: number): Promise\<number>
793
794设置播放速度。通过Promise获取返回值。
795
796> **说明:**
797> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.setSpeed](arkts-apis-media-AVPlayer.md#setspeed9)替代。
798
799**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
800
801**参数:**
802
803| 参数名 | 类型   | 必填 | 说明                                                       |
804| ------ | ------ | ---- | ---------------------------------------------------------- |
805| speed  | number | 是   | 指定播放视频速度,具体见[PlaybackSpeed](arkts-apis-media-e.md#playbackspeed8)。 |
806
807**返回值:**
808
809| 类型             | 说明                                                         |
810| ---------------- | ------------------------------------------------------------ |
811| Promise\<number> | Promise对象,返回设置的播放速度,具体见[PlaybackSpeed](arkts-apis-media-e.md#playbackspeed8)。 |
812
813**示例:**
814
815```ts
816import { BusinessError } from '@kit.BasicServicesKit';
817
818let videoPlayer: media.VideoPlayer | null = null;
819media.createVideoPlayer((error: BusinessError, video: media.VideoPlayer) => {
820  if (video != null) {
821    videoPlayer = video;
822    console.info('Succeeded in creating VideoPlayer');
823  } else {
824    console.error(`Failed to create VideoPlayer, error:${error}`);
825  }
826});
827let speed = media.PlaybackSpeed.SPEED_FORWARD_2_00_X;
828if (videoPlayer) {
829  (videoPlayer as media.VideoPlayer).setSpeed(speed).then((result: number) => {
830    console.info('Succeeded in setting Speed');
831  }).catch((error: BusinessError) => {
832    console.error(`Failed to set Speed, error:${error}`);//todo:: error.
833  });
834}
835```
836
837## on('playbackCompleted')<sup>(deprecated)</sup>
838
839on(type: 'playbackCompleted', callback: Callback\<void>): void
840
841开始监听视频播放完成事件。
842
843> **说明:**
844> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.on('stateChange')](arkts-apis-media-AVPlayer.md#onstatechange9)替代。
845
846**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
847
848**参数:**
849
850| 参数名   | 类型     | 必填 | 说明                                                        |
851| -------- | -------- | ---- | ----------------------------------------------------------- |
852| type     | string   | 是   | 视频播放完成事件回调类型,支持的事件:'playbackCompleted'。 |
853| callback | Callback\<void> | 是   | 视频播放完成事件回调方法。                                  |
854
855**示例:**
856
857```ts
858videoPlayer.on('playbackCompleted', () => {
859  console.info('playbackCompleted called!');
860});
861```
862
863## on('bufferingUpdate')<sup>(deprecated)</sup>
864
865on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void
866
867开始监听视频缓存更新事件。仅网络播放支持该订阅事件。
868
869> **说明:**
870> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.on('bufferingUpdate')](arkts-apis-media-AVPlayer.md#onbufferingupdate9)替代。
871
872**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
873
874**参数:**
875
876| 参数名   | 类型     | 必填 | 说明                                                         |
877| -------- | -------- | ---- | ------------------------------------------------------------ |
878| type     | string   | 是   | 视频缓存事件回调类型,支持的事件:'bufferingUpdate'。        |
879| callback | function | 是   | 视频缓存事件回调方法。<br>[BufferingInfoType](arkts-apis-media-e.md#bufferinginfotype8)value值固定为0。 |
880
881**示例:**
882
883```ts
884videoPlayer.on('bufferingUpdate', (infoType: media.BufferingInfoType, value: number) => {
885  console.info('video bufferingInfo type: ' + infoType);
886  console.info('video bufferingInfo value: ' + value);
887});
888```
889
890## on('startRenderFrame')<sup>(deprecated)</sup>
891
892on(type: 'startRenderFrame', callback: Callback\<void>): void
893
894开始监听视频播放首帧送显上报事件。
895
896> **说明:**
897> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.on('startRenderFrame')](arkts-apis-media-AVPlayer.md#onstartrenderframe9)替代。
898
899**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
900
901**参数:**
902
903| 参数名   | 类型            | 必填 | 说明                                                         |
904| -------- | --------------- | ---- | ------------------------------------------------------------ |
905| type     | string          | 是   | 视频播放首帧送显上报事件回调类型,支持的事件:'startRenderFrame'。 |
906| callback | Callback\<void> | 是   | 视频播放首帧送显上报事件回调方法。                           |
907
908**示例:**
909
910```ts
911videoPlayer.on('startRenderFrame', () => {
912  console.info('startRenderFrame called!');
913});
914```
915
916## on('videoSizeChanged')<sup>(deprecated)</sup>
917
918on(type: 'videoSizeChanged', callback: (width: number, height: number) => void): void
919
920开始监听视频播放宽高变化事件。
921
922> **说明:**
923> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.on('videoSizeChange')](arkts-apis-media-AVPlayer.md#onvideosizechange9)替代。
924
925**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
926
927**参数:**
928
929| 参数名   | 类型     | 必填 | 说明                                                         |
930| -------- | -------- | ---- | ------------------------------------------------------------ |
931| type     | string   | 是   | 视频播放宽高变化事件回调类型,支持的事件:'videoSizeChanged'。 |
932| callback | function | 是   | 视频播放宽高变化事件回调方法,width表示宽,height表示高。    |
933
934**示例:**
935
936```ts
937videoPlayer.on('videoSizeChanged', (width: number, height: number) => {
938  console.info('video width is: ' + width);
939  console.info('video height is: ' + height);
940});
941```
942## on('audioInterrupt')<sup>(deprecated)</sup>
943
944on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void
945
946监听音频焦点变化事件,参考[audio.InterruptEvent](../apis-audio-kit/arkts-apis-audio-i.md#interruptevent9)。
947
948> **说明:**
949> 从API version 9开始支持,从API version 9开始废弃,建议使用[AVPlayer.on('audioInterrupt')](arkts-apis-media-AVPlayer.md#onaudiointerrupt9)替代。
950
951**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
952
953**参数:**
954
955| 参数名   | 类型                                                         | 必填 | 说明                                                     |
956| -------- | ------------------------------------------------------------ | ---- | -------------------------------------------------------- |
957| type     | string                                                       | 是   | 音频焦点变化事件回调类型,支持的事件:'audioInterrupt'。 |
958| callback | function | 是   | 音频焦点变化事件回调方法。                               |
959
960**示例:**
961
962```ts
963import { audio } from '@kit.AudioKit';
964
965videoPlayer.on('audioInterrupt', (info: audio.InterruptEvent) => {
966  console.info('audioInterrupt called,and InterruptEvent info is:' + info);
967});
968```
969
970## on('error')<sup>(deprecated)</sup>
971
972on(type: 'error', callback: ErrorCallback): void
973
974开始监听视频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。
975
976> **说明:**
977> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer.on('error')](arkts-apis-media-AVPlayer.md#onerror9)替代。
978
979**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer
980
981**参数:**
982
983| 参数名   | 类型          | 必填 | 说明                                                         |
984| -------- | ------------- | ---- | ------------------------------------------------------------ |
985| type     | string        | 是   | 播放错误事件回调类型,支持的事件包括:'error'。<br>- 'error':视频播放中发生错误,触发该事件。 |
986| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 是   | 播放错误事件回调方法。                                       |
987
988**示例:**
989
990```ts
991import { BusinessError } from '@kit.BasicServicesKit';
992
993videoPlayer.on('error', (error: BusinessError) => {  // 设置'error'事件回调。
994  console.error(`video error called, error: ${error}`);
995});
996videoPlayer.url = 'fd://error';  //设置错误的播放地址,触发'error'事件。
997```