• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# native_audio_session_manager.h
2
3## Overview
4
5The file declares the functions related to an audio session manager.
6
7You can call the functions to create an audio session manager, activate or deactivate an audio session, check whether an audio session is activated, and listen for audio session deactivation events.
8
9**Library**: libohaudio.so
10
11**File to include**: <ohaudio/native_audio_session_manager.h>
12
13**System capability**: SystemCapability.Multimedia.Audio.Core
14
15**Since**: 12
16
17**Related module**: [OHAudio](capi-ohaudio.md)
18
19## Summary
20
21### Structs
22
23| Name| typedef Keyword| Description|
24| -- | -- | -- |
25| [OH_AudioSession_Strategy](capi-ohaudio-oh-audiosession-strategy.md) | OH_AudioSession_Strategy | Describes the audio session strategy.|
26| [OH_AudioSession_DeactivatedEvent](capi-ohaudio-oh-audiosession-deactivatedevent.md) | OH_AudioSession_DeactivatedEvent | Describes the event indicating that an audio session is deactivated.|
27| [OH_AudioSessionManager](capi-ohaudio-oh-audiosessionmanager.md) | OH_AudioSessionManager | Describes an audio session manager, which is used to manage audio sessions. |
28
29### Enums
30
31| Name| typedef Keyword| Description|
32| -- | -- | -- |
33| [OH_AudioSession_ConcurrencyMode](#oh_audiosession_concurrencymode) | OH_AudioSession_ConcurrencyMode | Enumerates the audio concurrency modes.|
34| [OH_AudioSession_DeactivatedReason](#oh_audiosession_deactivatedreason) | OH_AudioSession_DeactivatedReason | Enumerates the reasons for deactivating an audio session.|
35
36### Functions
37
38| Name| typedef Keyword| Description|
39| -- | -- | -- |
40| [typedef int32_t (\*OH_AudioSession_DeactivatedCallback)(OH_AudioSession_DeactivatedEvent event)](#oh_audiosession_deactivatedcallback) | OH_AudioSession_DeactivatedCallback | Defines a function pointer to the callback used to listen for audio session deactivation events.|
41| [OH_AudioCommon_Result OH_AudioManager_GetAudioSessionManager(OH_AudioSessionManager **audioSessionManager)](#oh_audiomanager_getaudiosessionmanager) | - | Obtains an OH_AudioSessionManager instance. Before using the features related to the audio session manager, you must obtain an OH_AudioSessionManager instance.|
42| [OH_AudioCommon_Result OH_AudioSessionManager_ActivateAudioSession(OH_AudioSessionManager *audioSessionManager, const OH_AudioSession_Strategy *strategy)](#oh_audiosessionmanager_activateaudiosession) | - | Activates an audio session.|
43| [OH_AudioCommon_Result OH_AudioSessionManager_DeactivateAudioSession(OH_AudioSessionManager *audioSessionManager)](#oh_audiosessionmanager_deactivateaudiosession) | - | Deactivates an audio session.|
44| [bool OH_AudioSessionManager_IsAudioSessionActivated(OH_AudioSessionManager *audioSessionManager)](#oh_audiosessionmanager_isaudiosessionactivated) | - | Checks whether an audio session is activated.|
45| [OH_AudioCommon_Result OH_AudioSessionManager_RegisterSessionDeactivatedCallback(OH_AudioSessionManager *audioSessionManager, OH_AudioSession_DeactivatedCallback callback)](#oh_audiosessionmanager_registersessiondeactivatedcallback) | - | Registers a callback to listen for audio session deactivation events.|
46| [OH_AudioCommon_Result OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(OH_AudioSessionManager *audioSessionManager, OH_AudioSession_DeactivatedCallback callback)](#oh_audiosessionmanager_unregistersessiondeactivatedcallback) | - | Unregisters the callback used to listen for audio session deactivation events.|
47
48## Enum Description
49
50### OH_AudioSession_ConcurrencyMode
51
52```
53enum OH_AudioSession_ConcurrencyMode
54```
55
56**Description**
57
58Enumerates the audio concurrency modes.
59
60**Since**: 12
61
62| Enum Item| Description|
63| -- | -- |
64| CONCURRENCY_DEFAULT = 0 | Uses the system strategy by default.|
65| CONCURRENCY_MIX_WITH_OTHERS = 1 | Mixes audio with other applications that are playing audio.|
66| CONCURRENCY_DUCK_OTHERS = 2 | Lowers the volume of the application that is currently playing the audio.|
67| CONCURRENCY_PAUSE_OTHERS = 3 | Pauses the application that is currently playing the audio.|
68
69### OH_AudioSession_DeactivatedReason
70
71```
72enum OH_AudioSession_DeactivatedReason
73```
74
75**Description**
76
77Enumerates the reasons for deactivating an audio session.
78
79**Since**: 12
80
81| Enum Item| Description|
82| -- | -- |
83| DEACTIVATED_LOWER_PRIORITY = 0 | The application focus is preempted.|
84| DEACTIVATED_TIMEOUT = 1 | The application times out after the stream is stopped.|
85
86
87## Function Description
88
89### OH_AudioSession_DeactivatedCallback()
90
91```
92typedef int32_t (*OH_AudioSession_DeactivatedCallback)(OH_AudioSession_DeactivatedEvent event)
93```
94
95**Description**
96
97Defines a function pointer to the callback used to listen for audio session deactivation events.
98
99**Since**: 12
100
101**Parameters**
102
103| Name| Description|
104| -- | -- |
105| [OH_AudioSession_DeactivatedEvent](capi-ohaudio-oh-audiosession-deactivatedevent.md) event | Pointer to OH_AudioSession_Deactivated_Event, which indicates that an audio session is deactivated.|
106
107### OH_AudioManager_GetAudioSessionManager()
108
109```
110OH_AudioCommon_Result OH_AudioManager_GetAudioSessionManager(OH_AudioSessionManager **audioSessionManager)
111```
112
113**Description**
114
115Obtains an OH_AudioSessionManager instance.
116
117Before using the features related to the audio session manager, you must obtain an OH_AudioSessionManager instance.
118
119**Since**: 12
120
121**Parameters**
122
123| Name| Description|
124| -- | -- |
125| [OH_AudioSessionManager](capi-ohaudio-oh-audiosessionmanager.md) **audioSessionManager | Double pointer to the OH_AudioSessionManager instance obtained.|
126
127**Returns**
128
129| Type| Description|
130| -- | -- |
131| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | **AUDIOCOMMON_RESULT_SUCCESS**: The function is executed successfully.<br>**AUDIOCOMMON_RESULT_ERROR_SYSTEM**: System error. |
132
133### OH_AudioSessionManager_ActivateAudioSession()
134
135```
136OH_AudioCommon_Result OH_AudioSessionManager_ActivateAudioSession(OH_AudioSessionManager *audioSessionManager, const OH_AudioSession_Strategy *strategy)
137```
138
139**Description**
140
141Activates an audio session.
142
143**Since**: 12
144
145
146**Parameters**
147
148| Name| Description|
149| -- | -- |
150| [OH_AudioSessionManager](capi-ohaudio-oh-audiosessionmanager.md) *audioSessionManager | Pointer to an audio session manager instance, which is created by calling [OH_AudioManager_GetAudioSessionManager](#oh_audiomanager_getaudiosessionmanager).|
151| const [OH_AudioSession_Strategy](capi-ohaudio-oh-audiosession-strategy.md) *strategy | Pointer to an audio session strategy, which is an [OH_AudioSession_Strategy](capi-ohaudio-oh-audiosession-strategy.md) struct.                                                                                                                          |
152
153**Returns**
154
155| Type| Description|
156| -- | -- |
157| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | **AUDIOCOMMON_RESULT_SUCCESS**: The function is executed successfully.<br>**AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM**:<br>1. The **audioSessionManager** parameter is nullptr.<br>2. The **strategy** parameter is invalid.<br>**AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE**: Invalid state. |
158
159### OH_AudioSessionManager_DeactivateAudioSession()
160
161```
162OH_AudioCommon_Result OH_AudioSessionManager_DeactivateAudioSession(OH_AudioSessionManager *audioSessionManager)
163```
164
165**Description**
166
167Deactivates an audio session.
168
169**Since**: 12
170
171
172**Parameters**
173
174| Name| Description|
175| -- | -- |
176| [OH_AudioSessionManager](capi-ohaudio-oh-audiosessionmanager.md) *audioSessionManager | Pointer to an audio session manager instance, which is created by calling [OH_AudioManager_GetAudioSessionManager](#oh_audiomanager_getaudiosessionmanager).|
177
178**Returns**
179
180| Type| Description|
181| -- | -- |
182| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | **AUDIOCOMMON_RESULT_SUCCESS**: The function is executed successfully.<br>**AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM**: The **audioSessionManager** parameter is nullptr.<br>**AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE**: Invalid state. |
183
184### OH_AudioSessionManager_IsAudioSessionActivated()
185
186```
187bool OH_AudioSessionManager_IsAudioSessionActivated(OH_AudioSessionManager *audioSessionManager)
188```
189
190**Description**
191
192Checks whether an audio session is activated.
193
194**Since**: 12
195
196
197**Parameters**
198
199| Name| Description|
200| -- | -- |
201| [OH_AudioSessionManager](capi-ohaudio-oh-audiosessionmanager.md) *audioSessionManager | Pointer to an audio session manager instance, which is created by calling [OH_AudioManager_GetAudioSessionManager](#oh_audiomanager_getaudiosessionmanager).|
202
203**Returns**
204
205| Type| Description|
206| -- | -- |
207| bool | Check result. The value **true** is returned if the audio session is activated, and **false** is returned otherwise.|
208
209### OH_AudioSessionManager_RegisterSessionDeactivatedCallback()
210
211```
212OH_AudioCommon_Result OH_AudioSessionManager_RegisterSessionDeactivatedCallback(OH_AudioSessionManager *audioSessionManager, OH_AudioSession_DeactivatedCallback callback)
213```
214
215**Description**
216
217Registers a callback to listen for audio session deactivation events.
218
219**Since**: 12
220
221**Parameters**
222
223| Name| Description|
224| -- | -- |
225| [OH_AudioSessionManager](capi-ohaudio-oh-audiosessionmanager.md) *audioSessionManager | Pointer to an audio session manager instance, which is created by calling [OH_AudioManager_GetAudioSessionManager](#oh_audiomanager_getaudiosessionmanager).|
226| [OH_AudioSession_DeactivatedCallback](#oh_audiosession_deactivatedcallback) callback | OH_AudioSessionDeactivatedCallback, a callback used to receive the audio session deactivation event.|
227
228**Returns**
229
230| Type| Description|
231| -- | -- |
232| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | **AUDIOCOMMON_RESULT_SUCCESS**: The function is executed successfully.<br>**AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM**:<br>1. The **audioSessionManager** parameter is nullptr.<br>2. The **callback** parameter is nullptr. |
233
234### OH_AudioSessionManager_UnregisterSessionDeactivatedCallback()
235
236```
237OH_AudioCommon_Result OH_AudioSessionManager_UnregisterSessionDeactivatedCallback(OH_AudioSessionManager *audioSessionManager, OH_AudioSession_DeactivatedCallback callback)
238```
239
240**Description**
241
242Unregisters the callback used to listen for audio session deactivation events.
243
244**Since**: 12
245
246
247**Parameters**
248
249| Name| Description|
250| -- | -- |
251| [OH_AudioSessionManager](capi-ohaudio-oh-audiosessionmanager.md) *audioSessionManager | Pointer to an audio session manager instance, which is created by calling [OH_AudioManager_GetAudioSessionManager](#oh_audiomanager_getaudiosessionmanager).|
252| [OH_AudioSession_DeactivatedCallback](#oh_audiosession_deactivatedcallback) callback | OH_AudioSessionDeactivatedCallback, a callback used to receive the audio session deactivation event.|
253
254**Returns**
255
256| Type| Description|
257| -- | -- |
258| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | **AUDIOCOMMON_RESULT_SUCCESS**: The function is executed successfully.<br>**AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM**:<br>1. The **audioSessionManager** parameter is nullptr.<br>2. The **callback** parameter is nullptr. |
259