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><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```