1/* 2* Copyright (C) 2021 Huawei Device Co., Ltd. 3* Licensed under the Apache License, Version 2.0 (the "License"); 4* you may not use this file except in compliance with the License. 5* You may obtain a copy of the License at 6* 7* http://www.apache.org/licenses/LICENSE-2.0 8* 9* Unless required by applicable law or agreed to in writing, software 10* distributed under the License is distributed on an "AS IS" BASIS, 11* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12* See the License for the specific language governing permissions and 13* limitations under the License. 14*/ 15 16import { ErrorCallback, AsyncCallback, Callback } from './basic'; 17 18/** 19 * @name media 20 * @since 6 21 * @import import media from '@ohos.multimedia.media' 22 */ 23declare namespace media { 24 /** 25 * Creates an AudioPlayer instance. 26 * @since 6 27 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 28 * @import import media from '@ohos.multimedia.media' 29 * @return Returns an AudioPlayer instance if the operation is successful; returns null otherwise. 30 */ 31 function createAudioPlayer(): AudioPlayer; 32 33 /** 34 * Creates an AudioRecorder instance. 35 * @since 6 36 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 37 * @import import media from '@ohos.multimedia.media' 38 * @return Returns an AudioRecorder instance if the operation is successful; returns null otherwise. 39 */ 40 function createAudioRecorder(): AudioRecorder; 41 42 /** 43 * Creates an VideoPlayer instance. 44 * @since 8 45 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 46 * @import import media from '@ohos.multimedia.media' 47 * @param callback Callback used to return AudioPlayer instance if the operation is successful; returns null otherwise. 48 */ 49 function createVideoPlayer(callback: AsyncCallback<VideoPlayer>): void; 50 /** 51 * Creates an VideoPlayer instance. 52 * @since 8 53 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 54 * @import import media from '@ohos.multimedia.media' 55 * @return A Promise instance used to return VideoPlayer instance if the operation is successful; returns null otherwise. 56 */ 57 function createVideoPlayer() : Promise<VideoPlayer>; 58 59 /** 60 * Enumerates ErrorCode types, return in BusinessError::code 61 * @since 8 62 * @syscap SystemCapability.Multimedia.Media.Core 63 * @import import media from '@ohos.multimedia.media' 64 */ 65 enum MediaErrorCode { 66 /** 67 * operation success. 68 * @since 8 69 * @syscap SystemCapability.Multimedia.Media.Core 70 */ 71 MSERR_OK = 0, 72 73 /** 74 * malloc or new memory failed. maybe system have no memory. 75 * @since 8 76 * @syscap SystemCapability.Multimedia.Media.Core 77 */ 78 MSERR_NO_MEMORY = 1, 79 80 /** 81 * no permission for the operation. 82 * @since 8 83 * @syscap SystemCapability.Multimedia.Media.Core 84 */ 85 MSERR_OPERATION_NOT_PERMIT = 2, 86 87 /** 88 * invalid argument. 89 * @since 8 90 * @syscap SystemCapability.Multimedia.Media.Core 91 */ 92 MSERR_INVALID_VAL = 3, 93 94 /** 95 * an IO error occurred. 96 * @since 8 97 * @syscap SystemCapability.Multimedia.Media.Core 98 */ 99 MSERR_IO = 4, 100 101 /** 102 * operation time out. 103 * @since 8 104 * @syscap SystemCapability.Multimedia.Media.Core 105 */ 106 MSERR_TIMEOUT = 5, 107 108 /** 109 * unknown error. 110 * @since 8 111 * @syscap SystemCapability.Multimedia.Media.Core 112 */ 113 MSERR_UNKNOWN = 6, 114 115 /** 116 * media service died. 117 * @since 8 118 * @syscap SystemCapability.Multimedia.Media.Core 119 */ 120 MSERR_SERVICE_DIED = 7, 121 122 /** 123 * operation is not permit in current state. 124 * @since 8 125 * @syscap SystemCapability.Multimedia.Media.Core 126 */ 127 MSERR_INVALID_STATE = 8, 128 129 /** 130 * operation is not supported in current version. 131 * @since 8 132 * @syscap SystemCapability.Multimedia.Media.Core 133 */ 134 MSERR_UNSUPPORTED = 9, 135 } 136 137 /** 138 * Enumerates buffering info type, for network playback. 139 * @since 8 140 * @syscap SystemCapability.Multimedia.Media.Core 141 * @import import media from '@ohos.multimedia.media' 142 */ 143 enum BufferingInfoType { 144 /** 145 * begin to buffering 146 * @since 8 147 * @syscap SystemCapability.Multimedia.Media.Core 148 */ 149 BUFFERING_START = 1, 150 151 /** 152 * end to buffering 153 * @since 8 154 * @syscap SystemCapability.Multimedia.Media.Core 155 */ 156 BUFFERING_END = 2, 157 158 /** 159 * buffering percent 160 * @since 8 161 * @syscap SystemCapability.Multimedia.Media.Core 162 */ 163 BUFFERING_PERCENT = 3, 164 165 /** 166 * cached duration in milliseconds 167 * @since 8 168 * @syscap SystemCapability.Multimedia.Media.Core 169 */ 170 CACHED_DURATION = 4, 171 } 172 173 /** 174 * Describes audio playback states. 175 * @since 6 176 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 177 * @import import media from '@ohos.multimedia.media' 178 */ 179 type AudioState = 'idle' | 'playing' | 'paused' | 'stopped' | 'error'; 180 181 /** 182 * Manages and plays audio. Before calling an AudioPlayer method, you must use createAudioPlayer() 183 * to create an AudioPlayer instance. 184 * @since 6 185 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 186 */ 187 interface AudioPlayer { 188 /** 189 * Starts audio playback. 190 * @since 6 191 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 192 */ 193 play(): void; 194 195 /** 196 * Pauses audio playback. 197 * @since 6 198 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 199 */ 200 pause(): void; 201 202 /** 203 * Stops audio playback. 204 * @since 6 205 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 206 */ 207 stop(): void; 208 209 /** 210 * Resets audio playback. 211 * @since 7 212 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 213 */ 214 reset(): void; 215 216 /** 217 * Jumps to the specified playback position. 218 * @since 6 219 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 220 * @param timeMs Playback position to jump 221 */ 222 seek(timeMs: number): void; 223 224 /** 225 * Sets the volume. 226 * @since 6 227 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 228 * @param vol Relative volume. The value ranges from 0.00 to 1.00. The value 1 indicates the maximum volume (100%). 229 */ 230 setVolume(vol: number): void; 231 232 /** 233 * Releases resources used for audio playback. 234 * @since 6 235 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 236 */ 237 release(): void; 238 /** 239 * get all track infos in MediaDescription, should be called after data loaded callback. 240 * @since 8 241 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 242 * @param callback async callback return track info in MediaDescription. 243 */ 244 getTrackDescription(callback: AsyncCallback<Array<MediaDescription>>): void; 245 246 /** 247 * get all track infos in MediaDescription, should be called after data loaded callback.. 248 * @since 8 249 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 250 * @param index track index. 251 * @return A Promise instance used to return the track info in MediaDescription. 252 */ 253 getTrackDescription() : Promise<Array<MediaDescription>>; 254 255 /** 256 * Listens for audio playback buffering events. 257 * @since 8 258 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 259 * @param type Type of the playback buffering update event to listen for. 260 * @param callback Callback used to listen for the buffering update event, return BufferingInfoType and the value. 261 */ 262 on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void; 263 /** 264 * Audio media URI. Mainstream audio formats are supported. 265 * local:fd://XXX, file://XXX. network:http://xxx 266 * @since 6 267 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 268 * @permission ohos.permission.READ_MEDIA, ohos.permission.INTERNET 269 */ 270 src: string; 271 272 /** 273 * Whether to loop audio playback. The value true means to loop playback. 274 * @since 6 275 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 276 */ 277 loop: boolean; 278 279 /** 280 * Current playback position. 281 * @since 6 282 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 283 */ 284 readonly currentTime: number; 285 286 /** 287 * Playback duration, When the data source does not support seek, it returns - 1, such as a live broadcast scenario. 288 * @since 6 289 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 290 */ 291 readonly duration: number; 292 293 /** 294 * Playback state. 295 * @since 6 296 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 297 */ 298 readonly state: AudioState; 299 300 /** 301 * Listens for audio playback events. 302 * @since 6 303 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 304 * @param type Type of the playback event to listen for. 305 * @param callback Callback used to listen for the playback event. 306 */ 307 on(type: 'play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange', callback: () => void): void; 308 309 /** 310 * Listens for audio playback events. 311 * @since 6 312 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 313 * @param type Type of the playback event to listen for. 314 * @param callback Callback used to listen for the playback event. 315 */ 316 on(type: 'timeUpdate', callback: Callback<number>): void; 317 318 /** 319 * Listens for playback error events. 320 * @since 6 321 * @syscap SystemCapability.Multimedia.Media.AudioPlayer 322 * @param type Type of the playback error event to listen for. 323 * @param callback Callback used to listen for the playback error event. 324 */ 325 on(type: 'error', callback: ErrorCallback): void; 326 } 327 328 /** 329 * Enumerates audio encoding formats, it will be deprecated after API8, use @CodecMimeType to replace. 330 * @since 6 331 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 332 * @import import media from '@ohos.multimedia.media' 333 * @deprecated since 8 334 */ 335 enum AudioEncoder { 336 /** 337 * Default audio encoding format, which is AMR-NB. 338 * @since 6 339 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 340 */ 341 DEFAULT = 0, 342 343 /** 344 * Indicates the AMR-NB audio encoding format. 345 * @since 6 346 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 347 */ 348 AMR_NB = 1, 349 350 /** 351 * Indicates the AMR-WB audio encoding format. 352 * @since 6 353 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 354 */ 355 AMR_WB = 2, 356 357 /** 358 * Advanced Audio Coding Low Complexity (AAC-LC). 359 * @since 6 360 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 361 */ 362 AAC_LC = 3, 363 364 /** 365 * High-Efficiency Advanced Audio Coding (HE-AAC). 366 * @since 6 367 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 368 */ 369 HE_AAC = 4 370 } 371 372 /** 373 * Enumerates audio output formats, it will be deprecated after API8, use @ContainerFormatType to replace. 374 * @since 6 375 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 376 * @import import media from '@ohos.multimedia.media' 377 * @deprecated since 8 378 */ 379 enum AudioOutputFormat { 380 /** 381 * Default audio output format, which is Moving Pictures Expert Group 4 (MPEG-4). 382 * @since 6 383 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 384 */ 385 DEFAULT = 0, 386 387 /** 388 * Indicates the Moving Picture Experts Group-4 (MPEG4) media format. 389 * @since 6 390 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 391 */ 392 MPEG_4 = 2, 393 394 /** 395 * Indicates the Adaptive Multi-Rate Narrowband (AMR-NB) media format. 396 * @since 6 397 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 398 */ 399 AMR_NB = 3, 400 401 /** 402 * Indicates the Adaptive Multi-Rate Wideband (AMR-WB) media format. 403 * @since 6 404 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 405 */ 406 AMR_WB = 4, 407 408 /** 409 * Audio Data Transport Stream (ADTS), a transmission stream format of Advanced Audio Coding (AAC) audio. 410 * @since 6 411 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 412 */ 413 AAC_ADTS = 6 414 } 415 416 /** 417 * Provides the geographical location definitions for media resources. 418 * @since 6 419 * @syscap SystemCapability.Multimedia.Media.Core 420 */ 421 interface Location { 422 /** 423 * Latitude. 424 * @since 6 425 * @syscap SystemCapability.Multimedia.Media.Core 426 */ 427 latitude: number; 428 429 /** 430 * Longitude. 431 * @since 6 432 * @syscap SystemCapability.Multimedia.Media.Core 433 */ 434 longitude: number; 435 } 436 437 /** 438 * Provides the audio recorder configuration definitions. 439 * @since 6 440 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 441 */ 442 interface AudioRecorderConfig { 443 /** 444 * Audio encoding format. The default value is DEFAULT, it will be deprecated after API8. 445 * use "audioEncoderMime" instead. 446 * @since 6 447 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 448 * @deprecated since 8 449 */ 450 audioEncoder?: AudioEncoder; 451 452 /** 453 * Audio encoding bit rate. 454 * @since 6 455 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 456 */ 457 audioEncodeBitRate?: number; 458 459 /** 460 * Audio sampling rate. 461 * @since 6 462 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 463 */ 464 audioSampleRate?: number; 465 466 /** 467 * Number of audio channels. 468 * @since 6 469 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 470 */ 471 numberOfChannels?: number; 472 473 /** 474 * Audio output format. The default value is DEFAULT, it will be deprecated after API8. 475 * it will be replaced with "fileFormat". 476 * @since 6 477 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 478 * @deprecated since 8 479 */ 480 format?: AudioOutputFormat; 481 482 /** 483 * Audio output uri.support two kind of uri now. 484 * format like: scheme + "://" + "context". 485 * file: file://path 486 * fd: fd://fd 487 * @since 6 488 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 489 */ 490 uri: string; 491 492 /** 493 * Geographical location information. 494 * @since 6 495 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 496 */ 497 location?: Location; 498 499 /** 500 * audio encoding format MIME. it used to replace audioEncoder. 501 * @since 8 502 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 503 */ 504 audioEncoderMime?: CodecMimeType; 505 /** 506 * output file format. see @ContainerFormatType , it used to replace "format". 507 * @since 8 508 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 509 */ 510 fileFormat?: ContainerFormatType; 511 } 512 513 /** 514 * Manages and record audio. Before calling an AudioRecorder method, you must use createAudioRecorder() 515 * to create an AudioRecorder instance. 516 * @since 6 517 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 518 */ 519 interface AudioRecorder { 520 /** 521 * Prepares for recording. 522 * @since 6 523 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 524 * @param config Recording parameters. 525 * @permission ohos.permission.MICROPHONE 526 */ 527 prepare(config: AudioRecorderConfig): void; 528 529 /** 530 * Starts audio recording. 531 * @since 6 532 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 533 */ 534 start(): void; 535 536 /** 537 * Pauses audio recording. 538 * @since 6 539 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 540 */ 541 pause(): void; 542 543 /** 544 * Resumes audio recording. 545 * @since 6 546 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 547 */ 548 resume(): void; 549 550 /** 551 * Stops audio recording. 552 * @since 6 553 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 554 */ 555 stop(): void; 556 557 /** 558 * Releases resources used for audio recording. 559 * @since 6 560 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 561 */ 562 release(): void; 563 564 /** 565 * Resets audio recording. 566 * Before resetting audio recording, you must call stop() to stop recording. After audio recording is reset, 567 * you must call prepare() to set the recording configurations for another recording. 568 * @since 6 569 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 570 */ 571 reset(): void; 572 573 /** 574 * Listens for audio recording events. 575 * @since 6 576 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 577 * @param type Type of the audio recording event to listen for. 578 * @param callback Callback used to listen for the audio recording event. 579 */ 580 on(type: 'prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset', callback: () => void): void; 581 582 /** 583 * Listens for audio recording error events. 584 * @since 6 585 * @syscap SystemCapability.Multimedia.Media.AudioRecorder 586 * @param type Type of the audio recording error event to listen for. 587 * @param callback Callback used to listen for the audio recording error event. 588 */ 589 on(type: 'error', callback: ErrorCallback): void; 590 } 591 592 /** 593 * Describes video playback states. 594 * @since 8 595 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 596 */ 597 type VideoPlayState = 'idle' | 'prepared' | 'playing' | 'paused' | 'stopped' | 'error'; 598 599 /** 600 * Enumerates playback speed. 601 * @since 8 602 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 603 */ 604 enum PlaybackSpeed { 605 /** 606 * playback at 0.75x normal speed 607 * @since 8 608 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 609 */ 610 SPEED_FORWARD_0_75_X = 0, 611 /** 612 * playback at normal speed 613 * @since 8 614 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 615 */ 616 SPEED_FORWARD_1_00_X = 1, 617 /** 618 * playback at 1.25x normal speed 619 * @since 8 620 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 621 */ 622 SPEED_FORWARD_1_25_X = 2, 623 /** 624 * playback at 1.75x normal speed 625 * @since 8 626 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 627 */ 628 SPEED_FORWARD_1_75_X = 3, 629 /** 630 * playback at 2.0x normal speed 631 * @since 8 632 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 633 */ 634 SPEED_FORWARD_2_00_X = 4, 635 } 636 637 /** 638 * Manages and plays video. Before calling an video method, you must use createVideoPlayer() to create an VideoPlayer 639 * instance. 640 * @since 8 641 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 642 * @import import media from '@ohos.multimedia.media' 643 */ 644 interface VideoPlayer { 645 /** 646 * set display surface. 647 * @since 8 648 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 649 * @param surfaceId surface id, video player will use this id get a surface instance. 650 * @return A Promise instance used to return when release output buffer completed. 651 */ 652 setDisplaySurface(surfaceId: string, callback: AsyncCallback<void>): void; 653 /** 654 * set display surface. 655 * @since 8 656 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 657 * @param surfaceId surface id, video player will use this id get a surface instance. 658 * @return A Promise instance used to return when release output buffer completed. 659 */ 660 setDisplaySurface(surfaceId: string): Promise<void>; 661 /** 662 * prepare video playback, it will request resource for playing. 663 * @since 8 664 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 665 * @param callback A callback instance used to return when prepare completed. 666 * @permission ohos.permission.MICROPHONE 667 */ 668 prepare(callback: AsyncCallback<void>): void; 669 /** 670 * prepare video playback, it will request resource for playing. 671 * @since 8 672 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 673 * @return A Promise instance used to return when prepare completed. 674 * @permission ohos.permission.MICROPHONE 675 */ 676 prepare(): Promise<void>; 677 /** 678 * Starts video playback. 679 * @since 8 680 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 681 * @param callback A callback instance used to return when start completed. 682 */ 683 play(callback: AsyncCallback<void>): void; 684 /** 685 * Starts video playback. 686 * @since 8 687 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 688 * @return A Promise instance used to return when start completed. 689 */ 690 play(): Promise<void>; 691 /** 692 * Pauses video playback. 693 * @since 8 694 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 695 * @param callback A callback instance used to return when pause completed. 696 */ 697 pause(callback: AsyncCallback<void>): void; 698 /** 699 * Pauses video playback. 700 * @since 8 701 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 702 * @return A Promise instance used to return when pause completed. 703 */ 704 pause(): Promise<void>; 705 /** 706 * Stops video playback. 707 * @since 8 708 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 709 * @param callback A callback instance used to return when stop completed. 710 */ 711 stop(callback: AsyncCallback<void>): void; 712 /** 713 * Stops video playback. 714 * @since 8 715 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 716 * @return A Promise instance used to return when stop completed. 717 */ 718 stop(): Promise<void>; 719 /** 720 * Resets video playback, it will release the resource. 721 * @since 8 722 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 723 * @param callback A callback instance used to return when reset completed. 724 */ 725 reset(callback: AsyncCallback<void>): void; 726 /** 727 * Resets video playback, it will release the resource. 728 * @since 8 729 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 730 * @return A Promise instance used to return when reset completed. 731 */ 732 reset(): Promise<void>; 733 /** 734 * Jumps to the specified playback position by default SeekMode(SEEK_CLOSEST), 735 * the performance may be not the best. 736 * @since 8 737 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 738 * @param timeMs Playback position to jump 739 * @param callback A callback instance used to return when seek completed 740 * and return the seeking position result. 741 */ 742 seek(timeMs: number, callback: AsyncCallback<number>): void; 743 /** 744 * Jumps to the specified playback position. 745 * @since 8 746 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 747 * @param timeMs Playback position to jump 748 * @param mode seek mode, see @SeekMode . 749 * @param callback A callback instance used to return when seek completed 750 * and return the seeking position result. 751 */ 752 seek(timeMs: number, mode:SeekMode, callback: AsyncCallback<number>): void; 753 /** 754 * Jumps to the specified playback position. 755 * @since 8 756 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 757 * @param timeMs Playback position to jump 758 * @param mode seek mode, see @SeekMode . 759 * @return A Promise instance used to return when seek completed 760 * and return the seeking position result. 761 */ 762 seek(timeMs: number, mode?:SeekMode): Promise<number>; 763 /** 764 * Sets the volume. 765 * @since 8 766 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 767 * @param vol Relative volume. The value ranges from 0.00 to 1.00. The value 1 indicates the maximum volume (100%). 768 * @param callback A callback instance used to return when set volume completed. 769 */ 770 setVolume(vol: number, callback: AsyncCallback<void>): void; 771 /** 772 * Sets the volume. 773 * @since 8 774 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 775 * @param vol Relative volume. The value ranges from 0.00 to 1.00. The value 1 indicates the maximum volume (100%). 776 * @return A Promise instance used to return when set volume completed. 777 */ 778 setVolume(vol: number): Promise<void>; 779 /** 780 * Releases resources used for video playback. 781 * @since 8 782 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 783 * @param callback A callback instance used to return when release completed. 784 */ 785 release(callback: AsyncCallback<void>): void; 786 /** 787 * Releases resources used for video playback. 788 * @since 8 789 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 790 * @return A Promise instance used to return when release completed. 791 */ 792 release(): Promise<void>; 793 /** 794 * get all track infos in MediaDescription, should be called after data loaded callback. 795 * @since 8 796 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 797 * @param callback async callback return track info in MediaDescription. 798 */ 799 getTrackDescription(callback: AsyncCallback<Array<MediaDescription>>): void; 800 801 /** 802 * get all track infos in MediaDescription, should be called after data loaded callback.. 803 * @since 8 804 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 805 * @param index track index. 806 * @return A Promise instance used to return the track info in MediaDescription. 807 */ 808 getTrackDescription() : Promise<Array<MediaDescription>>; 809 810 /** 811 * media url. Mainstream video formats are supported. 812 * local:fd://XXX, file://XXX. network:http://xxx 813 * @since 8 814 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 815 */ 816 url: string; 817 818 /** 819 * Whether to loop video playback. The value true means to loop playback. 820 * @since 8 821 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 822 */ 823 loop: boolean; 824 825 /** 826 * Current playback position. 827 * @since 8 828 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 829 */ 830 readonly currentTime: number; 831 832 /** 833 * Playback duration, if -1 means cannot seek. 834 * @since 8 835 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 836 */ 837 readonly duration: number; 838 839 /** 840 * Playback state. 841 * @since 8 842 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 843 */ 844 readonly state: VideoPlayState; 845 846 /** 847 * video width, valid after prepared. 848 * @since 8 849 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 850 */ 851 readonly width: number; 852 853 /** 854 * video height, valid after prepared. 855 * @since 8 856 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 857 */ 858 readonly height: number; 859 860 /** 861 * set payback speed. 862 * @since 8 863 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 864 * @param speed playback speed, see @PlaybackSpeed . 865 * @param callback Callback used to return actually speed. 866 */ 867 setSpeed(speed:number, callback: AsyncCallback<number>): void; 868 /** 869 * set output surface. 870 * @since 8 871 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 872 * @param speed playback speed, see @PlaybackSpeed . 873 * @return A Promise instance used to return actually speed. 874 */ 875 setSpeed(speed:number): Promise<number>; 876 877 /** 878 * Listens for video playback completed events. 879 * @since 8 880 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 881 * @param type Type of the playback event to listen for. 882 * @param callback Callback used to listen for the playback event return . 883 */ 884 on(type: 'playbackCompleted', callback: Callback<void>): void; 885 886 /** 887 * Listens for video playback buffering events. 888 * @since 8 889 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 890 * @param type Type of the playback buffering update event to listen for. 891 * @param callback Callback used to listen for the buffering update event, return BufferingInfoType and the value. 892 */ 893 on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void; 894 895 /** 896 * Listens for start render video frame events. 897 * @since 8 898 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 899 * @param type Type of the playback event to listen for. 900 * @param callback Callback used to listen for the playback event return . 901 */ 902 on(type: 'startRenderFrame', callback: Callback<void>): void; 903 904 /** 905 * Listens for video size changed event. 906 * @since 8 907 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 908 * @param type Type of the playback event to listen for. 909 * @param callback Callback used to listen for the playback event return video size. 910 */ 911 on(type: 'videoSizeChanged', callback: (width: number, height: number) => void): void; 912 913 /** 914 * Listens for playback error events. 915 * @since 8 916 * @syscap SystemCapability.Multimedia.Media.VideoPlayer 917 * @param type Type of the playback error event to listen for. 918 * @param callback Callback used to listen for the playback error event. 919 */ 920 on(type: 'error', callback: ErrorCallback): void; 921 } 922 923 /** 924 * Enumerates container format type(The abbreviation for 'container format type' is CFT). 925 * @since 8 926 * @syscap SystemCapability.Multimedia.Media.Core 927 * @import import media from '@ohos.multimedia.media' 928 */ 929 enum ContainerFormatType { 930 /** 931 * A video container format type mp4. 932 * @since 8 933 * @syscap SystemCapability.Multimedia.Media.Core 934 */ 935 CFT_MPEG_4 = "mp4", 936 937 /** 938 * A audio container format type m4a. 939 * @since 8 940 * @syscap SystemCapability.Multimedia.Media.Core 941 */ 942 CFT_MPEG_4A = "m4a", 943 } 944 945 /** 946 * Enumerates media data type. 947 * @since 8 948 * @syscap SystemCapability.Multimedia.Media.Core 949 * @import import media from '@ohos.multimedia.media' 950 */ 951 enum MediaType { 952 /** 953 * track is audio. 954 * @since 8 955 * @syscap SystemCapability.Multimedia.Media.Core 956 */ 957 MEDIA_TYPE_AUD = 0, 958 /** 959 * track is video. 960 * @since 8 961 * @syscap SystemCapability.Multimedia.Media.Core 962 */ 963 MEDIA_TYPE_VID = 1, 964 } 965 966 /** 967 * Enumerates media description key. 968 * @since 8 969 * @syscap SystemCapability.Multimedia.Media.Core 970 * @import import media from '@ohos.multimedia.media' 971 */ 972 enum MediaDescriptionKey { 973 /** 974 * key for track index, value type is number. 975 * @since 8 976 * @syscap SystemCapability.Multimedia.Media.Core 977 */ 978 MD_KEY_TRACK_INDEX = "track_index", 979 980 /** 981 * key for track type, value type is number, see @MediaType. 982 * @since 8 983 * @syscap SystemCapability.Multimedia.Media.Core 984 */ 985 MD_KEY_TRACK_TYPE = "track_type", 986 987 /** 988 * key for codec mime type, value type is string. 989 * @since 8 990 * @syscap SystemCapability.Multimedia.Media.Core 991 */ 992 MD_KEY_CODEC_MIME = "codec_mime", 993 994 /** 995 * key for duration, value type is number. 996 * @since 8 997 * @syscap SystemCapability.Multimedia.Media.Core 998 */ 999 MD_KEY_DURATION = "duration", 1000 1001 /** 1002 * key for bitrate, value type is number. 1003 * @since 8 1004 * @syscap SystemCapability.Multimedia.Media.Core 1005 */ 1006 MD_KEY_BITRATE = "bitrate", 1007 1008 /** 1009 * key for video width, value type is number. 1010 * @since 8 1011 * @syscap SystemCapability.Multimedia.Media.Core 1012 */ 1013 MD_KEY_WIDTH = "width", 1014 1015 /** 1016 * key for video height, value type is number. 1017 * @since 8 1018 * @syscap SystemCapability.Multimedia.Media.Core 1019 */ 1020 MD_KEY_HEIGHT = "height", 1021 1022 /** 1023 * key for video frame rate, value type is number. 1024 * @since 8 1025 * @syscap SystemCapability.Multimedia.Media.Core 1026 */ 1027 MD_KEY_FRAME_RATE = "frame_rate", 1028 1029 /** 1030 * key for audio channel count, value type is number 1031 * @since 8 1032 * @syscap SystemCapability.Multimedia.Media.Core 1033 */ 1034 MD_KEY_AUD_CHANNEL_COUNT = "channel_count", 1035 1036 /** 1037 * key for audio sample rate, value type is number 1038 * @since 8 1039 * @syscap SystemCapability.Multimedia.Media.Core 1040 */ 1041 MD_KEY_AUD_SAMPLE_RATE = "sample_rate", 1042 } 1043 1044 /** 1045 * Provides the container definition for media description key-value pairs. 1046 * @since 8 1047 * @syscap SystemCapability.Multimedia.Media.Core 1048 */ 1049 interface MediaDescription { 1050 /** 1051 * key:value pair, key see @MediaDescriptionKey . 1052 * @since 8 1053 * @syscap SystemCapability.Multimedia.Media.Core 1054 */ 1055 [key : string]: Object; 1056 } 1057 1058 /** 1059 * Enumerates seek mode. 1060 * @since 8 1061 * @syscap SystemCapability.Multimedia.Media.Core 1062 * @import import media from '@ohos.multimedia.media' 1063 */ 1064 enum SeekMode { 1065 /** 1066 * seek to the next sync frame of the given timestamp 1067 * @since 8 1068 * @syscap SystemCapability.Multimedia.Media.Core 1069 */ 1070 SEEK_NEXT_SYNC = 0, 1071 /** 1072 * seek to the previous sync frame of the given timestamp 1073 * @since 8 1074 * @syscap SystemCapability.Multimedia.Media.Core 1075 */ 1076 SEEK_PREV_SYNC = 1, 1077 } 1078 1079 /** 1080 * Enumerates Codec MIME types. 1081 * @since 8 1082 * @syscap SystemCapability.Multimedia.Media.Core 1083 * @import import media from '@ohos.multimedia.media' 1084 */ 1085 enum CodecMimeType { 1086 /** 1087 * H.263 codec MIME type. 1088 * @since 8 1089 * @syscap SystemCapability.Multimedia.Media.Core 1090 */ 1091 VIDEO_H263 = 'video/h263', 1092 /** 1093 * H.264 codec MIME type. 1094 * @since 8 1095 * @syscap SystemCapability.Multimedia.Media.Core 1096 */ 1097 VIDEO_AVC = 'video/avc', 1098 /** 1099 * MPEG2 codec MIME type. 1100 * @since 8 1101 * @syscap SystemCapability.Multimedia.Media.Core 1102 */ 1103 VIDEO_MPEG2 = 'video/mpeg2', 1104 /** 1105 * MPEG4 codec MIME type 1106 * @since 8 1107 * @syscap SystemCapability.Multimedia.Media.Core 1108 */ 1109 VIDEO_MPEG4 = 'video/mp4v-es', 1110 1111 /** 1112 * VP8 codec MIME type 1113 * @since 8 1114 * @syscap SystemCapability.Multimedia.Media.Core 1115 */ 1116 VIDEO_VP8 = 'video/x-vnd.on2.vp8', 1117 1118 /** 1119 * AAC codec MIME type. 1120 * @since 8 1121 * @syscap SystemCapability.Multimedia.Media.Core 1122 */ 1123 AUDIO_AAC = 'audio/mp4a-latm', 1124 1125 /** 1126 * vorbis codec MIME type. 1127 * @since 8 1128 * @syscap SystemCapability.Multimedia.Media.Core 1129 */ 1130 AUDIO_VORBIS = 'audio/vorbis', 1131 1132 /** 1133 * flac codec MIME type. 1134 * @since 8 1135 * @syscap SystemCapability.Multimedia.Media.Core 1136 */ 1137 AUDIO_FLAC = 'audio/flac', 1138 } 1139} 1140export default media; 1141