• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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