• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Interface (AudioVolumeManager)
2<!--Kit: Audio Kit-->
3<!--Subsystem: Multimedia-->
4<!--Owner: @songshenke-->
5<!--Designer: @caixuejiang; @hao-liangfei; @zhanganxiang-->
6<!--Tester: @Filger-->
7<!--Adviser: @zengyawen-->
8
9> **说明:**
10>
11> - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
12> - 本Interface首批接口从API version 9开始支持。
13
14音量管理。
15
16在使用AudioVolumeManager的接口之前,需先通过[getVolumeManager](arkts-apis-audio-AudioManager.md#getvolumemanager9)获取AudioVolumeManager实例。
17
18## 导入模块
19
20```ts
21import { audio } from '@kit.AudioKit';
22```
23
24## getVolumeGroupManager<sup>9+</sup>
25
26getVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager\>\): void
27
28获取音频组音量管理器实例。使用callback异步回调。
29
30**系统能力:** SystemCapability.Multimedia.Audio.Volume
31
32**参数:**
33
34| 参数名     | 类型                                                         | 必填 | 说明                                                        |
35| ---------- | ------------------------------------------------------------ | ---- |-----------------------------------------------------------|
36| groupId    | number                                    | 是   | 音量组id,默认使用DEFAULT_VOLUME_GROUP_ID。                         |
37| callback   | AsyncCallback&lt;[AudioVolumeGroupManager](arkts-apis-audio-AudioVolumeGroupManager.md)&gt; | 是   | 回调函数。当获取音频组音量管理器实例成功,err为undefined,data为获取到的音频组音量管理器实例;否则为错误对象。 |
38
39**示例:**
40
41```ts
42import { BusinessError } from '@kit.BasicServicesKit';
43
44let groupId: number = audio.DEFAULT_VOLUME_GROUP_ID;
45
46audioVolumeManager.getVolumeGroupManager(groupId, (err: BusinessError, value: audio.AudioVolumeGroupManager) => {
47  if (err) {
48    console.error(`Failed to getVolumeGroupManager. Code: ${err.code}, message: ${err.message}`);
49    return;
50  }
51  console.info('Succeeded in doing getVolumeGroupManager.');
52});
53
54```
55
56## getVolumeGroupManager<sup>9+</sup>
57
58getVolumeGroupManager(groupId: number\): Promise<AudioVolumeGroupManager\>
59
60获取音频组音量管理器实例。使用Promise异步回调。
61
62**系统能力:** SystemCapability.Multimedia.Audio.Volume
63
64**参数:**
65
66| 参数名     | 类型                                      | 必填 | 说明                               |
67| ---------- | ---------------------------------------- | ---- |----------------------------------|
68| groupId    | number                                   | 是   | 音量组id,默认使用DEFAULT_VOLUME_GROUP_ID。|
69
70**返回值:**
71
72| 类型                | 说明                          |
73| ------------------- | ----------------------------- |
74| Promise&lt; [AudioVolumeGroupManager](arkts-apis-audio-AudioVolumeGroupManager.md) &gt; | Promise对象,返回音频组音量管理器实例。 |
75
76**示例:**
77
78```ts
79import { audio } from '@kit.AudioKit';
80import { BusinessError } from '@kit.BasicServicesKit';
81
82let groupId: number = audio.DEFAULT_VOLUME_GROUP_ID;
83
84audioVolumeManager.getVolumeGroupManager(groupId).then((audioVolumeGroupManager: audio.AudioVolumeGroupManager) => {
85  console.info('Succeeded in doing getVolumeGroupManager.');
86}).catch((err: BusinessError) => {
87  console.error(`Failed to getVolumeGroupManager. Code: ${err.code}, message: ${err.message}`);
88});
89```
90
91## getVolumeGroupManagerSync<sup>10+</sup>
92
93getVolumeGroupManagerSync(groupId: number\): AudioVolumeGroupManager
94
95获取音频组音量管理器实例。同步返回结果。
96
97**系统能力:** SystemCapability.Multimedia.Audio.Volume
98
99**参数:**
100
101| 参数名     | 类型                                      | 必填 | 说明                               |
102| ---------- | ---------------------------------------- | ---- |----------------------------------|
103| groupId    | number                                   | 是   | 音量组id,默认使用DEFAULT_VOLUME_GROUP_ID。|
104
105**返回值:**
106
107| 类型                | 说明                          |
108| ------------------- | ----------------------------- |
109| [AudioVolumeGroupManager](arkts-apis-audio-AudioVolumeGroupManager.md) | 音频组音量管理器实例。 |
110
111**错误码:**
112
113以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
114
115| 错误码ID | 错误信息 |
116| ------- | --------------------------------------------|
117| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
118| 6800101 | Parameter verification failed. |
119
120**示例:**
121
122```ts
123import { BusinessError } from '@kit.BasicServicesKit';
124
125try {
126  let audioVolumeGroupManager: audio.AudioVolumeGroupManager = audioVolumeManager.getVolumeGroupManagerSync(audio.DEFAULT_VOLUME_GROUP_ID);
127  console.info(`Get audioVolumeGroupManager success.`);
128} catch (err) {
129  let error = err as BusinessError;
130  console.error(`Failed to get audioVolumeGroupManager, error: ${error}`);
131}
132```
133
134## getAppVolumePercentage<sup>19+</sup>
135
136getAppVolumePercentage(): Promise<number\>
137
138获取应用的音量(范围为0到100)。使用Promise异步回调。
139
140**系统能力:** SystemCapability.Multimedia.Audio.Volume
141
142**返回值:**
143
144| 类型                | 说明                 |
145| ------------------- |--------------------|
146| Promise&lt;number&gt; | Promise对象,返回应用的音量。 |
147
148**示例:**
149
150```ts
151import { audio } from '@kit.AudioKit';
152
153audioVolumeManager.getAppVolumePercentage().then((value: number) => {
154  console.info(`app volume is ${value}.`);
155});
156```
157
158## setAppVolumePercentage<sup>19+</sup>
159
160setAppVolumePercentage(volume: number\): Promise<void\>
161
162设置应用的音量(范围为0到100)。使用Promise异步回调。
163
164**系统能力:** SystemCapability.Multimedia.Audio.Volume
165
166**参数:**
167
168| 参数名     | 类型                                      | 必填 | 说明       |
169| ---------- | ---------------------------------------- | ---- |----------|
170| volume    | number                                   | 是   | 要设置的音量值。 |
171
172**返回值:**
173
174| 类型                | 说明                            |
175| ------------------- | ------------------------------- |
176| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
177
178**错误码:**
179
180以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。
181
182| 错误码ID | 错误信息 |
183| ------- | --------------------------------------------|
184| 6800101 | Parameter verification failed.|
185| 6800301 | Crash or blocking occurs in system process. |
186
187**示例:**
188
189```ts
190import { audio } from '@kit.AudioKit';
191
192audioVolumeManager.setAppVolumePercentage(20).then(() => {
193  console.info(`set app volume success.`);
194});
195```
196
197## on('volumeChange')<sup>(deprecated)</sup>
198
199on(type: 'volumeChange', callback: Callback\<VolumeEvent>): void
200
201监听系统音量变化事件(当系统音量发生变化时触发)。使用callback异步回调。
202
203> **说明:**
204> 从API version 12开始支持,从API version 20开始废弃,建议使用[on('streamVolumeChange')](arkts-apis-audio-AudioVolumeManager.md#onstreamvolumechange20)替代。
205
206**系统能力:** SystemCapability.Multimedia.Audio.Volume
207
208**参数:**
209
210| 参数名   | 类型                                   | 必填 | 说明                                                         |
211| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
212| type     | string                                 | 是   | 事件回调类型,支持的事件为'volumeChange',当系统音量发生变化时,触发该事件。 |
213| callback | Callback<[VolumeEvent](arkts-apis-audio-i.md#volumeevent9)> | 是   | 回调函数,返回变化后的音量信息。 |
214
215**错误码:**
216
217以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
218
219| 错误码ID | 错误信息 |
220| ------- | --------------------------------------------|
221| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
222| 6800101 | Parameter verification failed. |
223
224**示例:**
225
226```ts
227audioVolumeManager.on('volumeChange', (volumeEvent: audio.VolumeEvent) => {
228  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
229  console.info(`Volume level: ${volumeEvent.volume} `);
230  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
231});
232```
233
234## off('volumeChange')<sup>(deprecated)</sup>
235
236off(type: 'volumeChange', callback?: Callback\<VolumeEvent>): void
237
238取消监听系统音量变化事件。使用callback异步回调。
239
240> **说明:**
241> 从API version 12开始支持,从API version 20开始废弃,建议使用[off('streamVolumeChange')](arkts-apis-audio-AudioVolumeManager.md#offstreamvolumechange20)替代。
242
243**系统能力:** SystemCapability.Multimedia.Audio.Volume
244
245**参数:**
246
247| 参数名   | 类型                                   | 必填 | 说明                                                         |
248| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
249| type     | string                                 | 是   | 事件回调类型,支持的事件为'volumeChange',当取消监听系统音量变化事件时,触发该事件。 |
250| callback | Callback<[VolumeEvent](arkts-apis-audio-i.md#volumeevent9)> | 否   | 回调函数,返回变化后的音量信息。 |
251
252**错误码:**
253
254以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
255
256| 错误码ID | 错误信息 |
257| ------- | --------------------------------------------|
258| 401 | Parameter error. Possible causes: 1.Mandatory parameters missing; 2.Incorrect parameter types. |
259| 6800101 | Parameter verification failed. |
260
261**示例:**
262
263```ts
264// 取消该事件的所有监听。
265audioVolumeManager.off('volumeChange');
266
267// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
268let volumeChangeCallback = (volumeEvent: audio.VolumeEvent) => {
269  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
270  console.info(`Volume level: ${volumeEvent.volume} `);
271  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
272};
273
274audioVolumeManager.on('volumeChange', volumeChangeCallback);
275
276audioVolumeManager.off('volumeChange', volumeChangeCallback);
277```
278
279## on('appVolumeChange')<sup>19+</sup>
280
281on(type: 'appVolumeChange', callback: Callback\<VolumeEvent>): void
282
283监听当前应用应用级音量变化事件(当应用级音量发生变化时触发)。使用callback异步回调。
284
285**系统能力:** SystemCapability.Multimedia.Audio.Volume
286
287**参数:**
288
289| 参数名   | 类型                                   | 必填 | 说明                                                         |
290| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
291| type     | string                                 | 是   | 事件回调类型,支持的事件为'appVolumeChange',当应用级音量发生变化时,触发该事件。 |
292| callback | Callback<[VolumeEvent](arkts-apis-audio-i.md#volumeevent9)> | 是   | 回调函数,返回变化后的音量信息。 |
293
294**错误码:**
295
296以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。
297
298| 错误码ID | 错误信息 |
299| ------- | --------------------------------------------|
300| 6800101 | Parameter verification failed. |
301
302**示例:**
303
304```ts
305audioVolumeManager.on('appVolumeChange', (volumeEvent: audio.VolumeEvent) => {
306  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
307  console.info(`Volume level: ${volumeEvent.volume} `);
308  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
309});
310```
311
312## off('appVolumeChange')<sup>19+</sup>
313
314off(type: 'appVolumeChange', callback?: Callback\<VolumeEvent>): void
315
316取消监听当前应用应用级音量变化事件。使用callback异步回调。
317
318**系统能力:** SystemCapability.Multimedia.Audio.Volume
319
320**参数:**
321
322| 参数名   | 类型                                   | 必填 | 说明                                                         |
323| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
324| type     | string                                 | 是   | 事件回调类型,支持的事件为'appVolumeChange',当取消监听当前应用应用级音量变化事件时,触发该事件。 |
325| callback | Callback<[VolumeEvent](arkts-apis-audio-i.md#volumeevent9)> | 否   | 回调函数,返回变化后的音量信息。 |
326
327**错误码:**
328
329以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。
330
331| 错误码ID | 错误信息 |
332| ------- | --------------------------------------------|
333| 6800101 | Parameter verification failed. |
334
335**示例:**
336
337```ts
338// 取消该事件的所有监听。
339audioVolumeManager.off('appVolumeChange');
340
341// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
342let appVolumeChangeCallback = (volumeEvent: audio.VolumeEvent) => {
343  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
344  console.info(`Volume level: ${volumeEvent.volume} `);
345  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
346};
347
348audioVolumeManager.on('appVolumeChange', appVolumeChangeCallback);
349
350audioVolumeManager.off('appVolumeChange', appVolumeChangeCallback);
351```
352
353## getVolumeByStream<sup>20+</sup>
354
355getVolumeByStream(streamUsage: StreamUsage): number
356
357获取指定音频流的音量。
358
359**系统能力:** SystemCapability.Multimedia.Audio.Volume
360
361**参数:**
362
363| 参数名   | 类型                                   | 必填 | 说明                                                         |
364| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
365| streamUsage     | [StreamUsage](arkts-apis-audio-e.md#streamusage)                                 | 是   | 需要获取音量值的音频流。 |
366
367**返回值:**
368
369| 类型                | 说明                          |
370| ------------------- | ----------------------------- |
371| number | 音量值。 |
372
373**错误码:**
374
375以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。
376
377| 错误码ID | 错误信息 |
378| ------- | --------------------------------------------|
379| 6800101 | Parameter verification failed. |
380
381**示例:**
382
383```ts
384// 获取指定音频流的音量值。
385import { BusinessError } from '@kit.BasicServicesKit';
386import { audio } from '@kit.AudioKit'
387
388try {
389  let volume : number = audio.getAudioManager().getVolumeManager().getVolumeByStream(audio.StreamUsage.STREAM_USAGE_MUSIC);
390  console.info(`Obtains the volume of a stream success.`);
391} catch (err) {
392  let error = err as BusinessError;
393  console.error(`Failed to obtains the volume of a stream, error: ${error}`);
394}
395```
396
397## getMinVolumeByStream<sup>20+</sup>
398
399getMinVolumeByStream(streamUsage: StreamUsage): number
400
401获取指定音频流的最小音量。
402
403**系统能力:** SystemCapability.Multimedia.Audio.Volume
404
405**参数:**
406
407| 参数名   | 类型                                   | 必填 | 说明                                                         |
408| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
409| streamUsage     | [StreamUsage](arkts-apis-audio-e.md#streamusage)                                 | 是   | 需要获取的最小音量值的音频流。 |
410
411**返回值:**
412
413| 类型                | 说明                          |
414| ------------------- | ----------------------------- |
415| number | 音量值。 |
416
417**错误码:**
418
419以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。
420
421| 错误码ID | 错误信息 |
422| ------- | --------------------------------------------|
423| 6800101 | Parameter verification failed. |
424
425**示例:**
426
427```ts
428// 获取指定音频流的最小音量。
429import { BusinessError } from '@kit.BasicServicesKit';
430import { audio } from '@kit.AudioKit'
431
432try {
433  let volume : number = audio.getAudioManager().getVolumeManager().getMinVolumeByStream(audio.StreamUsage.STREAM_USAGE_MUSIC);
434  console.info(`Obtains the minimum volume allowed for a stream success.`);
435} catch (err) {
436  let error = err as BusinessError;
437  console.error(`Failed to obtains the minimum volume allowed for a stream, error: ${error}`);
438}
439```
440
441## getMaxVolumeByStream<sup>20+</sup>
442
443getMaxVolumeByStream(streamUsage: StreamUsage): number
444
445获取指定音频流的最大音量。
446
447**系统能力:** SystemCapability.Multimedia.Audio.Volume
448
449**参数:**
450
451| 参数名   | 类型                                   | 必填 | 说明                                                         |
452| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
453| streamUsage     | [StreamUsage](arkts-apis-audio-e.md#streamusage)                                 | 是   | 需要获取的最大音量值的音频流。 |
454
455**返回值:**
456
457| 类型                | 说明                          |
458| ------------------- | ----------------------------- |
459| number | 音量值。 |
460
461**错误码:**
462
463以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。
464
465| 错误码ID | 错误信息 |
466| ------- | --------------------------------------------|
467| 6800101 | Parameter verification failed. |
468
469**示例:**
470
471```ts
472// 获取指定音频流的最大音量。
473import { BusinessError } from '@kit.BasicServicesKit';
474import { audio } from '@kit.AudioKit'
475
476try {
477  let volume : number = audio.getAudioManager().getVolumeManager().getMaxVolumeByStream(audio.StreamUsage.STREAM_USAGE_MUSIC);
478  console.info(`Obtains the maximum volume allowed for a stream success.`);
479} catch (err) {
480  let error = err as BusinessError;
481  console.error(`Failed to obtains the maximum volume allowed for a stream, error: ${error}`);
482}
483```
484
485## isSystemMutedForStream<sup>20+</sup>
486
487isSystemMutedForStream(streamUsage: StreamUsage): boolean
488
489检查指定音频流是否静音。
490
491**系统能力:** SystemCapability.Multimedia.Audio.Volume
492
493**参数:**
494
495| 参数名   | 类型                                   | 必填 | 说明                                                         |
496| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
497| streamUsage     | [StreamUsage](arkts-apis-audio-e.md#streamusage)                                 | 是   | 检查是否为静音的音频流。 |
498
499**返回值:**
500
501| 类型                | 说明                          |
502| ------------------- | ----------------------------- |
503| boolean | 音频流是否为静音状态,true表示音频流已静音,false表示音频流未静音。 |
504
505**错误码:**
506
507以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。
508
509| 错误码ID | 错误信息 |
510| ------- | --------------------------------------------|
511| 6800101 | Parameter verification failed. |
512
513**示例:**
514
515```ts
516// 检查指定音频流是否静音。
517import { BusinessError } from '@kit.BasicServicesKit';
518import { audio } from '@kit.AudioKit'
519
520try {
521  let isMuted : boolean = audio.getAudioManager().getVolumeManager().isSystemMutedForStream(audio.StreamUsage.STREAM_USAGE_MUSIC);
522  console.info(`Checks whether the system is muted based on the stream success.`);
523} catch (err) {
524  let error = err as BusinessError;
525  console.error(`Failed to checks whether the system is muted based on the stream, error: ${error}`);
526}
527
528```
529## getVolumeInUnitOfDbByStream<sup>20+</sup>
530
531getVolumeInUnitOfDbByStream(streamUsage: StreamUsage, volumeLevel: number, device: DeviceType): number
532
533获取系统通过音频流、音量等级和设备类型计算出的音量db值。
534
535**系统能力:** SystemCapability.Multimedia.Audio.Volume
536
537**参数:**
538
539| 参数名   | 类型                                   | 必填 | 说明                                                         |
540| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
541| streamUsage     | [StreamUsage](arkts-apis-audio-e.md#streamusage)                                 | 是   | 音频流。 |
542| volumeLevel     | number                                 | 是   | 音量值等级。 |
543| device     | [DeviceType](arkts-apis-audio-e.md#devicetype)                                 | 是   | 设备类型。 |
544
545**返回值:**
546
547| 类型                | 说明                          |
548| ------------------- | ----------------------------- |
549| number | 音频流的音量db值。 |
550
551**错误码:**
552
553以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。
554
555| 错误码ID | 错误信息 |
556| ------- | --------------------------------------------|
557| 6800101 | Parameter verification failed. |
558
559**示例:**
560
561```ts
562// 获取系统通过音频流、音量等级和设备类型计算出的音量db值。
563import { BusinessError } from '@kit.BasicServicesKit';
564import { audio } from '@kit.AudioKit'
565
566try {
567  let volumeInDb : number = audio.getAudioManager().getVolumeManager().getVolumeInUnitOfDbByStream(audio.StreamUsage.STREAM_USAGE_MUSIC, 5, audio.DeviceType.SPEAKER);
568  console.info(`Gets the volume db value that system calculate by volume stream, volume level and device type.
569 success.`);
570} catch (err) {
571  let error = err as BusinessError;
572  console.error(`Failed to gets the volume db value that system calculate by volume stream, volume level and device type., error: ${error}`);
573}
574```
575
576## on('streamVolumeChange')<sup>20+</sup>
577
578 on(type: 'streamVolumeChange', streamUsage: StreamUsage, callback: Callback\<StreamVolumeEvent>): void
579
580监听系统音频流音量变化事件(当系统音频流音量发生变化时触发)。使用callback异步回调。
581
582**系统能力:** SystemCapability.Multimedia.Audio.Volume
583
584**参数:**
585
586| 参数名   | 类型                                   | 必填 | 说明                                                         |
587| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
588| type     | string                                 | 是   | 事件回调类型,支持的事件为'streamVolumeChange',当系统音量发生变化时,触发该事件。 |
589| streamUsage     | [StreamUsage](arkts-apis-audio-e.md#streamusage)                                 | 是   | 音频流使用类型。 |
590| callback | Callback<[StreamVolumeEvent](arkts-apis-audio-i.md#streamvolumeevent20)> | 是   | 回调函数,返回变化后的音量信息。 |
591
592**错误码:**
593
594以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。
595
596| 错误码ID | 错误信息 |
597| ------- | --------------------------------------------|
598| 6800101 | Parameter verification failed. |
599
600**示例:**
601
602```ts
603audioVolumeManager.on('streamVolumeChange', audio.StreamUsage.STREAM_USAGE_MUSIC, (streamVolumeEvent: audio.StreamVolumeEvent) => {
604  console.info(`StreamUsage of stream: ${streamVolumeEvent.streamUsage} `);
605  console.info(`Volume level: ${streamVolumeEvent.volume} `);
606  console.info(`Whether to updateUI: ${streamVolumeEvent.updateUi} `);
607});
608```
609
610## off('streamVolumeChange')<sup>20+</sup>
611
612off(type: 'streamVolumeChange', callback?: Callback\<StreamVolumeEvent>): void
613
614取消监听系统音频流音量变化事件(当系统音频流音量发生变化时触发)。使用callback异步回调。
615
616**系统能力:** SystemCapability.Multimedia.Audio.Volume
617
618**参数:**
619
620| 参数名   | 类型                                   | 必填 | 说明                                                         |
621| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
622| type     | string                                 | 是   | 事件回调类型,支持的事件为'volumeChange',当取消监听系统音量变化事件时,触发该事件。 |
623| callback | Callback<[StreamVolumeEvent](arkts-apis-audio-i.md#streamvolumeevent20)> | 否   | 回调函数,返回变化后的音量信息。 |
624
625**示例:**
626
627```ts
628// 取消该事件的所有监听。
629audioVolumeManager.off('streamVolumeChange');
630
631// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
632let streamVolumeChangeCallback = (streamVolumeEvent: audio.StreamVolumeEvent) => {
633  console.info(`StreamUsage of stream: ${streamVolumeEvent.streamUsage} `);
634  console.info(`Volume level: ${streamVolumeEvent.volume} `);
635  console.info(`Whether to updateUI: ${streamVolumeEvent.updateUi} `);
636};
637
638audioVolumeManager.on('streamVolumeChange', audio.StreamUsage.STREAM_USAGE_MUSIC, streamVolumeChangeCallback);
639
640audioVolumeManager.off('streamVolumeChange', streamVolumeChangeCallback);
641```
642