• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# native_audio_resource_manager.h
2
3## Overview
4
5The file declares the functions related to an audio resource manager.
6
7**File to include**: <ohaudio/native_audio_resource_manager.h>
8
9**Library**: libohaudio.so
10
11**System capability**: SystemCapability.Multimedia.Audio.Core
12
13**Since**: 20
14
15**Related module**: [OHAudio](capi-ohaudio.md)
16
17## Summary
18
19### Structs
20
21| Name| typedef Keyword| Description|
22| -- | -- | -- |
23| [OH_AudioResourceManager](capi-ohaudio-oh-audioresourcemanager.md) | OH_AudioResourceManager | Describes an audio resource manager, which is used to manage audio resources.|
24| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) | OH_AudioWorkgroup | Describes an audio group, which is used to group and manage key audio threads.|
25
26### Functions
27
28| Name| Description|
29| -- | -- |
30| [OH_AudioCommon_Result OH_AudioManager_GetAudioResourceManager(OH_AudioResourceManager **resourceManager)](#oh_audiomanager_getaudioresourcemanager) | Obtains an audio resource manager.<br>Before using the features related to the audio resource manager, you must obtain an audio resource manager instance.|
31| [OH_AudioCommon_Result OH_AudioResourceManager_CreateWorkgroup(OH_AudioResourceManager *resourceManager,const char *name, OH_AudioWorkgroup **group)](#oh_audioresourcemanager_createworkgroup) | Creates an audio workgroup.|
32| [OH_AudioCommon_Result OH_AudioResourceManager_ReleaseWorkgroup(OH_AudioResourceManager *resourceManager,OH_AudioWorkgroup *group)](#oh_audioresourcemanager_releaseworkgroup) | Releases an audio workgroup.|
33| [OH_AudioCommon_Result OH_AudioWorkgroup_AddCurrentThread(OH_AudioWorkgroup *group, int32_t *tokenId)](#oh_audioworkgroup_addcurrentthread) | Adds a thread to an audio workgroup.|
34| [OH_AudioCommon_Result OH_AudioWorkgroup_RemoveThread(OH_AudioWorkgroup *group, int32_t tokenId)](#oh_audioworkgroup_removethread) | Removes a thread from an audio workgroup.|
35| [OH_AudioCommon_Result OH_AudioWorkgroup_Start(OH_AudioWorkgroup *group, uint64_t startTime, uint64_t deadlineTime)](#oh_audioworkgroup_start) | Notifies the system that an audio workgroup starts working and provides the expected end time of the workgroup.|
36| [OH_AudioCommon_Result OH_AudioWorkgroup_Stop(OH_AudioWorkgroup *group)](#oh_audioworkgroup_stop) | Notifies the system that an audio workgroup finishes working.|
37
38## Function Description
39
40### OH_AudioManager_GetAudioResourceManager()
41
42```
43OH_AudioCommon_Result OH_AudioManager_GetAudioResourceManager(OH_AudioResourceManager **resourceManager)
44```
45
46**Description**
47
48Obtains an audio resource manager.
49
50Before using the features related to the audio resource manager, you must obtain an audio resource manager instance.
51
52**Since**: 20
53
54
55**Parameters**
56
57| Name| Description|
58| -- | -- |
59| [OH_AudioResourceManager](capi-ohaudio-oh-audioresourcemanager.md) **resourceManager | Double pointer to an OH_AudioResourceManager instance, which is used to receive the created audio resource manager instance.|
60
61**Returns**
62
63| Type| Description|
64| -- | -- |
65| [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 **resourceManager** parameter is nullptr.|
66
67### OH_AudioResourceManager_CreateWorkgroup()
68
69```
70OH_AudioCommon_Result OH_AudioResourceManager_CreateWorkgroup(OH_AudioResourceManager *resourceManager,const char *name, OH_AudioWorkgroup **group)
71```
72
73**Description**
74
75Creates an audio workgroup.
76
77**Since**: 20
78
79
80**Parameters**
81
82| Name| Description|
83| -- | -- |
84| [OH_AudioResourceManager](capi-ohaudio-oh-audioresourcemanager.md) *resourceManager | Pointer to an OH_AudioResourceManager instance, which is created by calling [OH_AudioManager_GetAudioResourceManager](capi-native-audio-resource-manager-h.md#oh_audiomanager_getaudioresourcemanager).|
85| const char *name | Pointer to the name of the audio workgroup.|
86| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) **group | Double pointer to an OH_AudioWorkgroup instance, which is used to receive the created audio workgroup instance.|
87
88**Returns**
89
90| Type| Description|
91| -- | -- |
92| [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 **resourceManager** parameter is nullptr.<br>2. The **name** parameter is nullptr.<br>3. The **group** parameter is nullptr.<br>**AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE**: The workgroup fails to be created, and the returned workgroup is nullptr. |
93
94### OH_AudioResourceManager_ReleaseWorkgroup()
95
96```
97OH_AudioCommon_Result OH_AudioResourceManager_ReleaseWorkgroup(OH_AudioResourceManager *resourceManager,OH_AudioWorkgroup *group)
98```
99
100**Description**
101
102Releases an audio workgroup.
103
104**Since**: 20
105
106
107**Parameters**
108
109| Name| Description|
110| -- | -- |
111| [OH_AudioResourceManager](capi-ohaudio-oh-audioresourcemanager.md) *resourceManager | Pointer to an OH_AudioResourceManager instance, which is created by calling [OH_AudioManager_GetAudioResourceManager](capi-native-audio-resource-manager-h.md#oh_audiomanager_getaudioresourcemanager).|
112| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) *group | Pointer to an OH_AudioWorkgroup instance, which is created by calling [OH_AudioResourceManager_CreateWorkgroup](capi-native-audio-resource-manager-h.md#oh_audioresourcemanager_createworkgroup).|
113
114**Returns**
115
116| Type| Description|
117| -- | -- |
118| [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 **resourceManager** parameter is nullptr.<br>2. The **group** parameter is nullptr.<br>**AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE**: The workgroup fails to be released. |
119
120### OH_AudioWorkgroup_AddCurrentThread()
121
122```
123OH_AudioCommon_Result OH_AudioWorkgroup_AddCurrentThread(OH_AudioWorkgroup *group, int32_t *tokenId)
124```
125
126**Description**
127
128Adds a thread to an audio workgroup.
129
130**Since**: 20
131
132
133**Parameters**
134
135| Name| Description|
136| -- | -- |
137| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) *group | Pointer to an OH_AudioWorkgroup instance, which is created by calling [OH_AudioResourceManager_CreateWorkgroup](capi-native-audio-resource-manager-h.md#oh_audioresourcemanager_createworkgroup).|
138| int32_t *tokenId | Pointer to the ID of the thread to be added to the audio workgroup.|
139
140**Returns**
141
142| Type| Description|
143| -- | -- |
144| [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 **group** parameter is nullptr.<br>**AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE**: The thread fails to be added to the workgroup.|
145
146### OH_AudioWorkgroup_RemoveThread()
147
148```
149OH_AudioCommon_Result OH_AudioWorkgroup_RemoveThread(OH_AudioWorkgroup *group, int32_t tokenId)
150```
151
152**Description**
153
154Removes a thread from an audio workgroup.
155
156**Since**: 20
157
158
159**Parameters**
160
161| Name| Description|
162| -- | -- |
163| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) *group | Pointer to an OH_AudioWorkgroup instance, which is created by calling [OH_AudioResourceManager_CreateWorkgroup](capi-native-audio-resource-manager-h.md#oh_audioresourcemanager_createworkgroup).|
164| int32_t tokenId | ID of the thread to be removed from the audio workgroup.|
165
166**Returns**
167
168| Type| Description|
169| -- | -- |
170| [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 **group** parameter is nullptr.<br>**AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE**: The thread fails to be removed from the workgroup.|
171
172### OH_AudioWorkgroup_Start()
173
174```
175OH_AudioCommon_Result OH_AudioWorkgroup_Start(OH_AudioWorkgroup *group, uint64_t startTime, uint64_t deadlineTime)
176```
177
178**Description**
179
180Notifies the system that an audio workgroup starts working and provides the expected end time of the workgroup.
181
182**Since**: 20
183
184
185**Parameters**
186
187| Name| Description|
188| -- | -- |
189| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) *group | Pointer to an OH_AudioWorkgroup instance, which is created by calling [OH_AudioResourceManager_CreateWorkgroup](capi-native-audio-resource-manager-h.md#oh_audioresourcemanager_createworkgroup).|
190| uint64_t startTime | Time when the audio workgroup starts working.|
191| uint64_t deadlineTime | Expected end time of the audio workgroup.|
192
193**Returns**
194
195| Type| Description|
196| -- | -- |
197| [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 **group** parameter is nullptr.<br>**AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE**: The workgroup fails to notify the system of the start.|
198
199### OH_AudioWorkgroup_Stop()
200
201```
202OH_AudioCommon_Result OH_AudioWorkgroup_Stop(OH_AudioWorkgroup *group)
203```
204
205**Description**
206
207Notifies the system that an audio workgroup finishes working.
208
209**Since**: 20
210
211
212**Parameters**
213
214| Name| Description|
215| -- | -- |
216| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) *group | Pointer to an OH_AudioWorkgroup instance, which is created by calling [OH_AudioResourceManager_CreateWorkgroup](capi-native-audio-resource-manager-h.md#oh_audioresourcemanager_createworkgroup).|
217
218**Returns**
219
220| Type| Description|
221| -- | -- |
222| [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 **group** parameter is nullptr.<br>**AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE**: The workgroup fails to notify the system of the end.|
223