• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Interface (AudioSessionManager)
2
3> **NOTE**
4>
5> - The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
6> - The initial APIs of this interface are supported since API version 12.
7
8This interface implements audio session management.
9
10Before calling any API in AudioSessionManager, you must use [getSessionManager](arkts-apis-audio-AudioManager.md#getsessionmanager12) to obtain an AudioSessionManager instance.
11
12## Modules to Import
13
14```ts
15import { audio } from '@kit.AudioKit';
16```
17
18## activateAudioSession<sup>12+</sup>
19
20activateAudioSession(strategy: AudioSessionStrategy): Promise\<void>
21
22Activates an audio session. This API uses a promise to return the result.
23
24**System capability**: SystemCapability.Multimedia.Audio.Core
25
26**Parameters**
27
28| Name| Type                                             | Mandatory| Description        |
29| ------ |-------------------------------------------------| ---- | ------------ |
30| strategy | [AudioSessionStrategy](arkts-apis-audio-i.md#audiosessionstrategy12) | Yes  | Audio session strategy.|
31
32**Return value**
33
34| Type          | Description                     |
35| -------------- | ------------------------- |
36| Promise\<void> | Promise that returns no value.|
37
38**Error codes**
39
40For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Audio Error Codes](errorcode-audio.md).
41
42| ID| Error Message|
43| ------- | ---------------------------------------------|
44| 401 | Parameter error. Possible causes: 1.Mandatory parameters unspecified. 2.Incorrect parameter types. |
45| 6800101 | Parameter verification failed.|
46| 6800301 | System error. Returned by promise. |
47
48**Example**
49
50```ts
51import { BusinessError } from '@kit.BasicServicesKit';
52
53let strategy: audio.AudioSessionStrategy = {
54  concurrencyMode: audio.AudioConcurrencyMode.CONCURRENCY_MIX_WITH_OTHERS
55};
56
57audioSessionManager.activateAudioSession(strategy).then(() => {
58  console.info('activateAudioSession SUCCESS');
59}).catch((err: BusinessError) => {
60  console.error(`ERROR: ${err}`);
61});
62```
63
64## deactivateAudioSession<sup>12+</sup>
65
66deactivateAudioSession(): Promise\<void>
67
68Deactivates this audio session. This API uses a promise to return the result.
69
70**System capability**: SystemCapability.Multimedia.Audio.Core
71
72**Return value**
73
74| Type          | Description                     |
75| -------------- | ------------------------- |
76| Promise\<void> | Promise that returns no value.|
77
78**Error codes**
79
80For details about the error codes, see [Audio Error Codes](errorcode-audio.md).
81
82| ID| Error Message|
83| ------- | ---------------------------------------------|
84| 6800301 | System error. Returned by promise. |
85
86**Example**
87
88```ts
89import { BusinessError } from '@kit.BasicServicesKit';
90
91audioSessionManager.deactivateAudioSession().then(() => {
92  console.info('deactivateAudioSession SUCCESS');
93}).catch((err: BusinessError) => {
94  console.error(`ERROR: ${err}`);
95});
96```
97
98## isAudioSessionActivated<sup>12+</sup>
99
100isAudioSessionActivated(): boolean
101
102Checks whether this audio session is activated.
103
104**System capability**: SystemCapability.Multimedia.Audio.Core
105
106**Return value**
107
108| Type                                             | Description                                   |
109| ------------------------------------------------- |---------------------------------------|
110| boolean | Check result. The value **true** means that the audio session is activated, and **false** means the opposite.|
111
112**Example**
113
114```ts
115let isActivated = audioSessionManager.isAudioSessionActivated();
116```
117
118## on('audioSessionDeactivated')<sup>12+</sup>
119
120on(type: 'audioSessionDeactivated', callback: Callback\<AudioSessionDeactivatedEvent>): void
121
122Subscribes to the audio session deactivation event, which is triggered when an audio session is deactivated. This API uses an asynchronous callback to return the result.
123
124**System capability**: SystemCapability.Multimedia.Audio.Core
125
126**Parameters**
127
128| Name  | Type                                                                       | Mandatory| Description                                                        |
129| -------- |---------------------------------------------------------------------------| ---- | ------------------------------------------------------------ |
130| type     | string | Yes  | Event type. The event **'audioSessionDeactivated'** is triggered when the audio session is deactivated.|
131| callback | Callback<[AudioSessionDeactivatedEvent](arkts-apis-audio-i.md#audiosessiondeactivatedevent12)> | Yes  | Callback used to return the reason why the audio session is deactivated.|
132
133**Error codes**
134
135For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Audio Error Codes](errorcode-audio.md).
136
137| ID| Error Message|
138| ------- | --------------------------------------------|
139| 401 | Parameter error. Possible causes: 1.Mandatory parameters unspecified. 2.Incorrect parameter types. |
140| 6800101 | Parameter verification failed. |
141
142**Example**
143
144```ts
145audioSessionManager.on('audioSessionDeactivated', (audioSessionDeactivatedEvent: audio.AudioSessionDeactivatedEvent) => {
146  console.info(`reason of audioSessionDeactivated: ${audioSessionDeactivatedEvent.reason} `);
147});
148```
149
150## off('audioSessionDeactivated')<sup>12+</sup>
151
152off(type: 'audioSessionDeactivated', callback?: Callback\<AudioSessionDeactivatedEvent>): void
153
154Unsubscribes from the audio session deactivation event. This API uses an asynchronous callback to return the result.
155
156**System capability**: SystemCapability.Multimedia.Audio.Core
157
158**Parameters**
159
160| Name  | Type                                  | Mandatory| Description                                                        |
161| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
162| type     | string | Yes  | Event type. The event **'audioSessionDeactivated'** is triggered when the audio session is deactivated.|
163| callback |Callback<[AudioSessionDeactivatedEvent](arkts-apis-audio-i.md#audiosessiondeactivatedevent12)> | No  | Callback used to return the reason why the audio session is deactivated.|
164
165**Error codes**
166
167For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Audio Error Codes](errorcode-audio.md).
168
169| ID| Error Message|
170| ------- | --------------------------------------------|
171| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
172| 6800101 | Parameter verification failed. |
173
174**Example**
175
176```ts
177// Cancel all subscriptions to the event.
178audioSessionManager.off('audioSessionDeactivated');
179
180// For the same event, if the callback parameter passed to the off API is the same as that passed to the on API, the off API cancels the subscription registered with the specified callback parameter.
181let audioSessionDeactivatedCallback = (audioSessionDeactivatedEvent: audio.AudioSessionDeactivatedEvent) => {
182  console.info(`reason of audioSessionDeactivated: ${audioSessionDeactivatedEvent.reason} `);
183};
184
185audioSessionManager.on('audioSessionDeactivated', audioSessionDeactivatedCallback);
186
187audioSessionManager.off('audioSessionDeactivated', audioSessionDeactivatedCallback);
188```
189