1# Functions 2<!--Kit: Media Kit--> 3<!--Subsystem: Multimedia--> 4<!--Owner: @wang-haizhou6--> 5<!--Designer: @HmQQQ--> 6<!--Tester: @xchaosioda--> 7<!--Adviser: @zengyawen--> 8 9> **说明:** 10> 11> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 12 13## 导入模块 14 15```ts 16import { media } from '@kit.MediaKit'; 17``` 18 19## media.createAVPlayer<sup>9+</sup> 20 21createAVPlayer(callback: AsyncCallback\<AVPlayer>): void 22 23异步方式创建音视频播放实例,通过注册回调函数获取返回值。 24 25> **说明:** 26> 27> - 推荐单个应用创建的音视频播放实例(即音频、视频、音视频三类相加)不超过16个。<!--Del--> 28> - 可创建的音视频播放实例数量依赖于设备芯片的支持情况,如芯片支持创建的数量少于上述情况,请以芯片规格为准。如RK3568推荐单个应用创建6个以内的音视频播放实例。<!--DelEnd--> 29> - 应用需要按照实际业务需求合理使用AVPlayer对象,按需创建并及时释放,避免持有过多AVPlayer实例导致内存消耗过大,否则在一定情况下可能导致系统查杀应用。 30 31**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 32 33**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 34 35**参数:** 36 37| 参数名 | 类型 | 必填 | 说明 | 38| -------- | ------------------------------------- | ---- | ------------------------------------------------------------ | 39| callback | AsyncCallback\<[AVPlayer](arkts-apis-media-AVPlayer.md)> | 是 | 回调函数。异步返回AVPlayer实例,失败时返回null。可用于音视频播放。 | 40 41**错误码:** 42 43以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md)。 44 45| 错误码ID | 错误信息 | 46| -------- | ------------------------------ | 47| 5400101 | No memory. Return by callback. | 48 49**示例:** 50 51```ts 52import { BusinessError } from '@kit.BasicServicesKit'; 53 54let avPlayer: media.AVPlayer; 55media.createAVPlayer((error: BusinessError, video: media.AVPlayer) => { 56 if (video != null) { 57 avPlayer = video; 58 console.info('Succeeded in creating AVPlayer'); 59 } else { 60 console.error(`Failed to create AVPlayer, error message:${error.message}`); 61 } 62}); 63``` 64 65## media.createAVPlayer<sup>9+</sup> 66 67createAVPlayer(): Promise\<AVPlayer> 68 69异步方式创建音视频播放实例。使用Promise异步回调。 70 71> **说明:** 72> 73> - 推荐单个应用创建的音视频播放实例(即音频、视频、音视频三类相加)不超过16个。<!--Del--> 74> - 可创建的音视频播放实例数量依赖于设备芯片的支持情况,如芯片支持创建的数量少于上述情况,请以芯片规格为准。如RK3568推荐单个应用创建6个以内的音视频播放实例。<!--DelEnd--> 75> - 应用需要按照实际业务需求合理使用AVPlayer对象,按需创建并及时释放,避免持有过多AVPlayer实例导致内存消耗过大,否则在一定情况下可能导致系统查杀应用。 76 77**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 78 79**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 80 81**返回值:** 82 83| 类型 | 说明 | 84| ------------------------------- | ------------------------------------------------------------ | 85| Promise\<[AVPlayer](arkts-apis-media-AVPlayer.md)> | Promise对象。异步返回AVPlayer实例,失败时返回null。可用于音视频播放。 | 86 87**错误码:** 88 89以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md)。 90 91| 错误码ID | 错误信息 | 92| -------- | ----------------------------- | 93| 5400101 | No memory. Return by promise. | 94 95**示例:** 96 97```ts 98import { BusinessError } from '@kit.BasicServicesKit'; 99 100let avPlayer: media.AVPlayer; 101media.createAVPlayer().then((video: media.AVPlayer) => { 102 if (video != null) { 103 avPlayer = video; 104 console.info('Succeeded in creating AVPlayer'); 105 } else { 106 console.error('Failed to create AVPlayer'); 107 } 108}).catch((error: BusinessError) => { 109 console.error(`Failed to create AVPlayer, error message:${error.message}`); 110}); 111``` 112 113## media.createAVRecorder<sup>9+</sup> 114 115createAVRecorder(callback: AsyncCallback\<AVRecorder>): void 116 117异步方式创建音视频录制实例。通过注册回调函数获取返回值。 118 119> **说明:** 120> 121> 应用可创建多个音视频录制实例,但由于设备共用音频通路,一个设备仅能有一个实例进行音频录制。创建第二个实例录制音频时,将会因为音频通路冲突导致创建失败。 122 123**系统能力:** SystemCapability.Multimedia.Media.AVRecorder 124 125**参数:** 126 127| 参数名 | 类型 | 必填 | 说明 | 128| -------- | ------------------------------------------ | ---- | ------------------------------------------------------------ | 129| callback | AsyncCallback\<[AVRecorder](arkts-apis-media-AVRecorder.md)> | 是 | 回调函数。异步返回AVRecorder实例,失败时返回null。可用于录制音视频媒体。 | 130 131**错误码:** 132 133以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md)。 134 135| 错误码ID | 错误信息 | 136| -------- | ------------------------------ | 137| 5400101 | No memory. Return by callback. | 138 139**示例:** 140 141```ts 142import { BusinessError } from '@kit.BasicServicesKit'; 143let avRecorder: media.AVRecorder; 144 145media.createAVRecorder((error: BusinessError, recorder: media.AVRecorder) => { 146 if (recorder != null) { 147 avRecorder = recorder; 148 console.info('Succeeded in creating AVRecorder'); 149 } else { 150 console.error(`Failed to create AVRecorder, error message:${error.message}`); 151 } 152}); 153``` 154 155## media.createAVRecorder<sup>9+</sup> 156 157createAVRecorder(): Promise\<AVRecorder> 158 159异步方式创建音视频录制实例。通过Promise获取返回值。 160 161> **说明:** 162> 163> 应用可创建多个音视频录制实例,但由于设备共用音频通路,一个设备仅能有一个实例进行音频录制。创建第二个实例录制音频时,将会因为音频通路冲突导致创建失败。 164 165**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 166 167**系统能力:** SystemCapability.Multimedia.Media.AVRecorder 168 169**返回值:** 170 171| 类型 | 说明 | 172| ------------------------------------ | ------------------------------------------------------------ | 173| Promise\<[AVRecorder](arkts-apis-media-AVRecorder.md)> | Promise对象。异步返回AVRecorder实例,失败时返回null。可用于录制音视频媒体。 | 174 175**错误码:** 176 177以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md)。 178 179| 错误码ID | 错误信息 | 180| -------- | ----------------------------- | 181| 5400101 | No memory. Return by promise. | 182 183**示例:** 184 185```ts 186import { BusinessError } from '@kit.BasicServicesKit'; 187let avRecorder: media.AVRecorder; 188media.createAVRecorder().then((recorder: media.AVRecorder) => { 189 if (recorder != null) { 190 avRecorder = recorder; 191 console.info('Succeeded in creating AVRecorder'); 192 } else { 193 console.error('Failed to create AVRecorder'); 194 } 195}).catch((error: BusinessError) => { 196 console.error(`Failed to create AVRecorder, error message:${error.message}`); 197}); 198``` 199 200## media.createAVTranscoder<sup>12+</sup> 201 202createAVTranscoder(): Promise\<AVTranscoder> 203 204异步方式创建视频转码实例,通过Promise获取返回值。 205 206> **说明:** 207 208> 可创建的视频转码实例不能超过2个。 209 210**系统能力:** SystemCapability.Multimedia.Media.AVTranscoder 211 212**返回值:** 213 214| 类型 | 说明 | 215| ------------------------------- | ------------------------------------------------------------ | 216| Promise\<[AVTranscoder](arkts-apis-media-AVTranscoder.md)> | Promise对象。异步返回AVTranscoder实例,失败时返回null。可用于视频转码。 | 217 218**错误码:** 219 220以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md)。 221 222| 错误码ID | 错误信息 | 223| -------- | ----------------------------- | 224| 5400101 | No memory. Return by promise. | 225 226**示例:** 227 228```ts 229import { BusinessError } from '@kit.BasicServicesKit'; 230 231let avTranscoder: media.AVTranscoder | undefined = undefined; 232media.createAVTranscoder().then((transcoder: media.AVTranscoder) => { 233 if (transcoder != null) { 234 avTranscoder = transcoder; 235 console.info('Succeeded in creating AVTranscoder'); 236 } else { 237 console.error('Failed to create AVTranscoder'); 238 } 239}).catch((error: BusinessError) => { 240 console.error(`Failed to create AVTranscoder, error message:${error.message}`); 241}); 242``` 243 244## media.createAVMetadataExtractor<sup>11+</sup> 245 246createAVMetadataExtractor(callback: AsyncCallback\<AVMetadataExtractor>): void 247 248异步方式创建AVMetadataExtractor实例,通过注册回调函数获取返回值。 249 250**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor 251 252**参数:** 253 254| 参数名 | 类型 | 必填 | 说明 | 255| -------- | ------------------------------------- | ---- | ------------------------------------------------------------ | 256| callback | AsyncCallback\<[AVMetadataExtractor](arkts-apis-media-AVMetadataExtractor.md)> | 是 | 回调函数。当创建AVMetadataExtractor实例成功,err为undefined,data为获取到的AVMetadataExtractor实例,否则为错误对象。 | 257 258**错误码:** 259 260以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md)。 261 262| 错误码ID | 错误信息 | 263| -------- | ------------------------------ | 264| 5400101 | No memory. Returned by callback. | 265 266**示例:** 267 268```ts 269import { BusinessError } from '@kit.BasicServicesKit'; 270 271let avMetadataExtractor: media.AVMetadataExtractor; 272media.createAVMetadataExtractor((error: BusinessError, extractor: media.AVMetadataExtractor) => { 273 if (extractor != null) { 274 avMetadataExtractor = extractor; 275 console.info('Succeeded in creating AVMetadataExtractor'); 276 } else { 277 console.error(`Failed to create AVMetadataExtractor, error message:${error.message}`); 278 } 279}); 280``` 281 282## media.createAVMetadataExtractor<sup>11+</sup> 283 284createAVMetadataExtractor(): Promise\<AVMetadataExtractor> 285 286异步方式创建AVMetadataExtractor实例,通过Promise获取返回值。 287 288**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor 289 290**返回值:** 291 292| 类型 | 说明 | 293| -------------- | ---------------------------------------- | 294| Promise\<[AVMetadataExtractor](arkts-apis-media-AVMetadataExtractor.md)> | Promise对象。异步返回元数据获取类对象(AVMetadataExtractor)。 | 295 296**错误码:** 297 298以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md)。 299 300| 错误码ID | 错误信息 | 301| -------- | ------------------------------ | 302| 5400101 | No memory. Returned by promise. | 303 304**示例:** 305 306```ts 307import { BusinessError } from '@kit.BasicServicesKit'; 308 309let avMetadataExtractor: media.AVMetadataExtractor; 310media.createAVMetadataExtractor().then((extractor: media.AVMetadataExtractor) => { 311 if (extractor != null) { 312 avMetadataExtractor = extractor; 313 console.info('Succeeded in creating AVMetadataExtractor'); 314 } else { 315 console.error(`Failed to create AVMetadataExtractor`); 316 } 317}).catch((error: BusinessError) => { 318 console.error(`Failed to create AVMetadataExtractor, error message:${error.message}`); 319}); 320``` 321 322## media.createSoundPool<sup>10+</sup> 323 324createSoundPool(maxStreams: number, audioRenderInfo: audio.AudioRendererInfo, callback: AsyncCallback\<SoundPool>): void 325 326创建音频池实例,使用callback方式异步获取返回值。 327 328> **说明:** 329> 330> - API 18以下版本,创建的SoundPool对象底层为单实例模式,一个应用进程只能够创建1个SoundPool实例。 331> - API 18及API 18以上版本,创建的SoundPool对象底层为多实例模式,一个应用进程最多能够创建128个SoundPool实例。 332 333**系统能力:** SystemCapability.Multimedia.Media.SoundPool 334 335**参数:** 336 337| 参数名 | 类型 | 必填 | 说明 | 338| -------- | ----------------------------------------------- | ---- | ------------------------------------------------------------ | 339| maxStreams | number | 是 | soundPool实例的最大播放的流数,设置范围为1-32的正整数。 | 340| audioRenderInfo | [audio.AudioRendererInfo](../apis-audio-kit/arkts-apis-audio-i.md#audiorendererinfo8) | 是 | 音频播放参数信息。其中audioRenderInfo中的参数usage取值为STREAM_USAGE_UNKNOWN,STREAM_USAGE_MUSIC,STREAM_USAGE_MOVIE,STREAM_USAGE_AUDIOBOOK时,SoundPool播放短音时为混音模式,不会打断其他音频播放。 | 341| callback | AsyncCallback<[SoundPool](js-apis-inner-multimedia-soundPool.md)> | 是 | 回调函数。异步返回SoundPool实例,失败时返回null。用于音频池实例的加载播放功能。 | 342 343**错误码:** 344 345以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md)。 346 347| 错误码ID | 错误信息 | 348| -------- | ------------------------------ | 349| 5400101 | No memory. Return by callback. | 350 351**示例:** 352 353```js 354import { audio } from '@kit.AudioKit'; 355 356let soundPool: media.SoundPool; 357let audioRendererInfo: audio.AudioRendererInfo = { 358 usage : audio.StreamUsage.STREAM_USAGE_MUSIC, 359 rendererFlags : 0 360}; 361 362media.createSoundPool(5, audioRendererInfo, (error, soundPool_: media.SoundPool) => { 363 if (error) { 364 console.error(`Failed to createSoundPool`); 365 return; 366 } else { 367 soundPool = soundPool_; 368 console.info(`Succeeded in createSoundPool`); 369 } 370}); 371``` 372 373## media.createSoundPool<sup>10+</sup> 374 375createSoundPool(maxStreams: number, audioRenderInfo: audio.AudioRendererInfo): Promise\<SoundPool> 376 377创建音频池实例,通过Promise获取返回值。 378 379> **说明:** 380> 381> - API 18以下版本,创建的SoundPool对象底层为单实例模式,一个应用进程只能够创建1个SoundPool实例。 382> - API 18及API 18以上版本,创建的SoundPool对象底层为多实例模式,一个应用进程最多能够创建128个SoundPool实例。 383 384**系统能力:** SystemCapability.Multimedia.Media.SoundPool 385 386**参数:** 387 388| 参数名 | 类型 | 必填 | 说明 | 389| -------- | ----------------------------------------------- | ---- | ------------------------------------------------------------ | 390| maxStreams | number | 是 | soundPool实例的最大播放的流数,设置范围为1-32的正整数。 | 391| audioRenderInfo | [audio.AudioRendererInfo](../apis-audio-kit/arkts-apis-audio-i.md#audiorendererinfo8) | 是 | 音频播放参数信息 | 392 393**返回值:** 394 395| 类型 | 说明 | 396| ----------------------------------------- | ------------------------------------------------------------ | 397| Promise<[SoundPool](js-apis-inner-multimedia-soundPool.md)> | Promise对象。异步返回SoundPool实例,失败时返回null。用于音频池实例的加载播放功能。 | 398 399**错误码:** 400 401以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md)。 402 403| 错误码ID | 错误信息 | 404| -------- | ----------------------------- | 405| 5400101 | No memory. Return by promise. | 406 407**示例:** 408 409```js 410import { audio } from '@kit.AudioKit'; 411import { BusinessError } from '@kit.BasicServicesKit'; 412 413let soundPool: media.SoundPool; 414let audioRendererInfo: audio.AudioRendererInfo = { 415 usage : audio.StreamUsage.STREAM_USAGE_MUSIC, 416 rendererFlags : 0 417}; 418 419media.createSoundPool(5, audioRendererInfo).then((soundpool_: media.SoundPool) => { 420 if (soundpool_ != null) { 421 soundPool = soundpool_; 422 console.info('Succeeded in creating SoundPool'); 423 } else { 424 console.error('Failed to create SoundPool'); 425 } 426}, (error: BusinessError) => { 427 console.error(`soundpool catchCallback, error message:${error.message}`); 428}); 429``` 430 431## media.createAVScreenCaptureRecorder<sup>12+</sup> 432 433createAVScreenCaptureRecorder(): Promise\<AVScreenCaptureRecorder> 434 435创建屏幕录制实例,通过Promise获取返回值。 436 437**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 438 439**返回值:** 440 441| 类型 | 说明 | 442| ------------------------------------------------------------ | ------------------------------------------------------------ | 443| Promise\<[AVScreenCaptureRecorder](arkts-apis-media-AVScreenCaptureRecorder.md)> | Promise对象。异步返回AVScreenCaptureRecorder实例,失败时返回null。可用于进行屏幕录制。 | 444 445**错误码:** 446 447| 错误码ID | 错误信息 | 448| -------- | ------------------------------ | 449| 5400101 | No memory. Return by promise. | 450 451**示例:** 452 453```ts 454import { BusinessError } from '@kit.BasicServicesKit'; 455 456let avScreenCaptureRecorder: media.AVScreenCaptureRecorder; 457media.createAVScreenCaptureRecorder().then((captureRecorder: media.AVScreenCaptureRecorder) => { 458 if (captureRecorder != null) { 459 avScreenCaptureRecorder = captureRecorder; 460 console.info('Succeeded in createAVScreenCaptureRecorder'); 461 } else { 462 console.error('Failed to createAVScreenCaptureRecorder'); 463 } 464}).catch((error: BusinessError) => { 465 console.error(`createAVScreenCaptureRecorder catchCallback, error message:${error.message}`); 466}); 467``` 468 469## media.createAVImageGenerator<sup>12+</sup> 470 471createAVImageGenerator(callback: AsyncCallback\<AVImageGenerator>): void 472 473创建AVImageGenerator实例,通过回调函数获取返回值。 474 475**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator 476 477**参数:** 478 479| 参数名 | 类型 | 必填 | 说明 | 480| -------- | ------------------------------------- | ---- | ------------------------------------------------------------ | 481| callback | AsyncCallback\<[AVImageGenerator](arkts-apis-media-AVImageGenerator.md)> | 是 | 回调函数。异步返回AVImageGenerator实例,失败时返回null。可用于获取视频缩略图。 | 482 483**错误码:** 484 485以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md)。 486 487| 错误码ID | 错误信息 | 488| -------- | ------------------------------ | 489| 5400101 | No memory. Returned by callback. | 490 491**示例:** 492 493```ts 494import { BusinessError } from '@kit.BasicServicesKit'; 495 496let avImageGenerator: media.AVImageGenerator; 497media.createAVImageGenerator((error: BusinessError, generator: media.AVImageGenerator) => { 498 if (generator != null) { 499 avImageGenerator = generator; 500 console.info('Succeeded in creating AVImageGenerator'); 501 } else { 502 console.error(`Failed to creat AVImageGenerator, error message:${error.message}`); 503 } 504}); 505``` 506 507## media.createAVImageGenerator<sup>12+</sup> 508 509createAVImageGenerator(): Promise\<AVImageGenerator> 510 511创建AVImageGenerator对象,通过Promise获取返回值。 512 513**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator 514 515**返回值:** 516 517| 类型 | 说明 | 518| ------------------------------- | ------------------------------------------------------------ | 519| Promise\<[AVImageGenerator](arkts-apis-media-AVImageGenerator.md)> | Promise对象。异步返回AVImageGenerator实例,失败时返回null。可用于获取视频缩略图。 | 520 521**错误码:** 522 523以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md)。 524 525| 错误码ID | 错误信息 | 526| -------- | ----------------------------- | 527| 5400101 | No memory. Returned by promise. | 528 529**示例:** 530 531```ts 532import { BusinessError } from '@kit.BasicServicesKit'; 533 534let avImageGenerator: media.AVImageGenerator; 535media.createAVImageGenerator().then((generator: media.AVImageGenerator) => { 536 if (generator != null) { 537 avImageGenerator = generator; 538 console.info('Succeeded in creating AVImageGenerator'); 539 } else { 540 console.error('Failed to creat AVImageGenerator'); 541 } 542}).catch((error: BusinessError) => { 543 console.error(`Failed to creat AVImageGenerator, error message:${error.message}`); 544}); 545``` 546 547## media.createMediaSourceWithUrl<sup>12+</sup> 548 549createMediaSourceWithUrl(url: string, headers?: Record\<string, string>): MediaSource 550 551创建流媒体预下载媒体来源实例方法。 552 553**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 554 555**系统能力:** SystemCapability.Multimedia.Media.Core 556 557**参数:** 558 559| 参数名 | 类型 | 必填 | 说明 | 560| -------- | -------- | ---- | -------------------- | 561| url | string | 是 | - 流媒体预下载媒体来源url,支持的流媒体格式:HLS、HTTP-FLV、Dash、Https。<br> - 本地m3u8的fd路径。 | 562| headers | Record\<string, string> | 否 | 支持流媒体预下载HttpHeader自定义。 | 563 564**返回值:** 565 566| 类型 | 说明 | 567| -------------- | ------------------------------------------ | 568| [MediaSource](arkts-apis-media-MediaSource.md) | MediaSource返回值。 | 569 570**错误码:** 571 572以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md)。 573 574| 错误码ID | 错误信息 | 575| -------- | ----------------------------------------- | 576| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3.Parameter verification failed. | 577| 5400101 | No memory. | 578 579**示例1:** 580 581```ts 582let headers: Record<string, string> = {"User-Agent" : "User-Agent-Value"}; 583let mediaSource : media.MediaSource = media.createMediaSourceWithUrl("http://xxx", headers); 584``` 585 586**示例2:** 587 588<!--code_no_check--> 589```ts 590import { media } from "@kit.MediaKit"; 591 592async function test(context: Context){ 593 // this.getUIContext().getHostContext(); 594 let mgr = context?.resourceManager; 595 if (!mgr) { 596 return; 597 } 598 let fileDescriptor = await mgr.getRawFd("xxx.m3u8"); 599 600 let fd: string = fileDescriptor.fd.toString(); 601 let offset: string = fileDescriptor.offset.toString(); 602 let length: string = fileDescriptor.length.toString(); 603 let fdUrl: string = "fd://" + fd + "?offset=" + offset + "&size=" + length; 604 605 let mediaSource: media.MediaSource = media.createMediaSourceWithUrl(fdUrl); 606} 607 608``` 609 610## media.createMediaSourceWithStreamData<sup>19+</sup> 611 612createMediaSourceWithStreamData(streams: Array\<MediaStream>): MediaSource 613 614创建流媒体多码率媒体来源实例方法,当前仅支持HTTP-FLV协议格式多码率。 615 616**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。 617 618**系统能力:** SystemCapability.Multimedia.Media.Core 619 620**参数:** 621 622| 参数名 | 类型 | 必填 | 说明 | 623| ------- | ------------------------------------ | ---- | ----------------------------------------------------- | 624| streams | Array<[MediaStream](arkts-apis-media-i.md#mediastream19)> | 是 | 可设置MediaStream数组,支持的流媒体格式:HTTP-FLV。 | 625 626**返回值:** 627 628| 类型 | 说明 | 629| ----------------------------- | ------------------- | 630| [MediaSource](arkts-apis-media-MediaSource.md) | 返回MediaSource,用于媒体资源设置。 | 631 632**示例:** 633 634```ts 635let streams : Array<media.MediaStream> = []; 636streams.push({url: "http://xxx/480p.flv", width: 854, height: 480, bitrate: 800000}); 637streams.push({url: "http://xxx/720p.flv", width: 1280, height: 720, bitrate: 2000000}); 638streams.push({url: "http://xxx/1080p.flv", width: 1920, height: 1080, bitrate: 2000000}); 639let mediaSource : media.MediaSource = media.createMediaSourceWithStreamData(streams); 640``` 641 642## media.createAudioPlayer<sup>(deprecated)</sup> 643 644createAudioPlayer(): AudioPlayer 645 646同步方式创建音频播放实例。 647 648> **说明:** 649> 从API version 6开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9)替代。 650 651**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer 652 653**返回值:** 654 655| 类型 | 说明 | 656| --------------------------- | ------------------------------------------------------------ | 657| [AudioPlayer](arkts-apis-media-AudioPlayer.md) | 返回AudioPlayer类实例,失败时返回null。可用于音频播放、暂停、停止等操作。 | 658 659**示例:** 660 661```ts 662let audioPlayer: media.AudioPlayer = media.createAudioPlayer(); 663``` 664 665## media.createVideoPlayer<sup>(deprecated)</sup> 666 667createVideoPlayer(callback: AsyncCallback\<VideoPlayer>): void 668 669异步方式创建视频播放实例,通过注册回调函数获取返回值。 670 671> **说明:** 672> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9)替代。 673 674**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer 675 676**参数:** 677 678| 参数名 | 类型 | 必填 | 说明 | 679| -------- | ------------------------------------------ | ---- | ------------------------------------------------------------ | 680| callback | AsyncCallback<[VideoPlayer](arkts-apis-media-VideoPlayer.md)> | 是 | 回调函数。创建VideoPlayer实例成功时,err为undefined,data为获取到的VideoPlayer实例,否则为错误对象。 | 681 682**示例:** 683 684```ts 685import { BusinessError } from '@kit.BasicServicesKit'; 686 687let videoPlayer: media.VideoPlayer; 688media.createVideoPlayer((error: BusinessError, video: media.VideoPlayer) => { 689 if (video != null) { 690 videoPlayer = video; 691 console.info('Succeeded in creating VideoPlayer'); 692 } else { 693 console.error(`Failed to create VideoPlayer, error:${error}`); 694 } 695}); 696``` 697 698## media.createVideoPlayer<sup>(deprecated)</sup> 699 700createVideoPlayer(): Promise\<VideoPlayer> 701 702异步方式创建视频播放实例,通过Promise获取返回值。 703 704> **说明:** 705> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9-1)替代。 706 707**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer 708 709**返回值:** 710 711| 类型 | 说明 | 712| ------------------------------------ | ------------------------------------------------------------ | 713| Promise<[VideoPlayer](arkts-apis-media-VideoPlayer.md)> | Promise对象。异步返回VideoPlayer实例,失败时返回null。可用于管理和播放视频媒体。 | 714 715**示例:** 716 717```ts 718import { BusinessError } from '@kit.BasicServicesKit'; 719 720let videoPlayer: media.VideoPlayer; 721media.createVideoPlayer().then((video: media.VideoPlayer) => { 722 if (video != null) { 723 videoPlayer = video; 724 console.info('Succeeded in creating VideoPlayer'); 725 } else { 726 console.error('Failed to create VideoPlayer'); 727 } 728}).catch((error: BusinessError) => { 729 console.error(`Failed to create VideoPlayer, error:${error}`); 730}); 731``` 732 733## media.createAudioRecorder<sup>(deprecated)</sup> 734 735createAudioRecorder(): AudioRecorder 736 737创建音频录制的实例来控制音频的录制。 738一台设备只允许创建一个录制实例。 739 740> **说明:** 741> 从API version 6开始支持,从API version 9开始废弃,建议使用[createAVRecorder](#mediacreateavrecorder9)替代。 742 743**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder 744 745**返回值:** 746 747| 类型 | 说明 | 748| ------------------------------- | ------------------------------------------------------------ | 749| [AudioRecorder](arkts-apis-media-AudioRecorder.md) | 返回AudioRecorder类实例,失败时返回null。可用于录制音频媒体。 | 750 751**示例:** 752 753```ts 754let audioRecorder: media.AudioRecorder = media.createAudioRecorder(); 755``` 756 757