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