• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# native_audio_resource_manager.h
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声明音频资源管理相关的接口。
12
13**引用文件:** <ohaudio/native_audio_resource_manager.h>
14
15**库:** libohaudio.so
16
17**系统能力:** SystemCapability.Multimedia.Audio.Core
18
19**起始版本:** 20
20
21**相关模块:** [OHAudio](capi-ohaudio.md)
22
23## 汇总
24
25### 结构体
26
27| 名称 | typedef关键字 | 描述 |
28| -- | -- | -- |
29| [OH_AudioResourceManager](capi-ohaudio-oh-audioresourcemanager.md) | OH_AudioResourceManager | 声明音频资源管理器。用于管理音频资源相关功能。 |
30| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) | OH_AudioWorkgroup | 声明音频工作组。将音频关键线程进行分组管理。 |
31
32### 函数
33
34| 名称 | 描述 |
35| -- | -- |
36| [OH_AudioCommon_Result OH_AudioManager_GetAudioResourceManager(OH_AudioResourceManager **resourceManager)](#oh_audiomanager_getaudioresourcemanager) | 获取音频资源管理器。<br> 使用音频资源管理器相关功能,首先需要获取音频资源管理器实例。 |
37| [OH_AudioCommon_Result OH_AudioResourceManager_CreateWorkgroup(OH_AudioResourceManager *resourceManager, const char *name, OH_AudioWorkgroup **group)](#oh_audioresourcemanager_createworkgroup) | 创建音频工作组。 |
38| [OH_AudioCommon_Result OH_AudioResourceManager_ReleaseWorkgroup(OH_AudioResourceManager *resourceManager, OH_AudioWorkgroup *group)](#oh_audioresourcemanager_releaseworkgroup) | 释放音频工作组。 |
39| [OH_AudioCommon_Result OH_AudioWorkgroup_AddCurrentThread(OH_AudioWorkgroup *group, int32_t *tokenId)](#oh_audioworkgroup_addcurrentthread) | 将当前线程加入group指向的音频工作组。 |
40| [OH_AudioCommon_Result OH_AudioWorkgroup_RemoveThread(OH_AudioWorkgroup *group, int32_t tokenId)](#oh_audioworkgroup_removethread) | 将tokenId对应的线程从group音频工作组中移除。 |
41| [OH_AudioCommon_Result OH_AudioWorkgroup_Start(OH_AudioWorkgroup *group, uint64_t startTime, uint64_t deadlineTime)](#oh_audioworkgroup_start) | 通知系统group指向的音频工作组开始工作,并告知系统当前工作组预期完成时间。 |
42| [OH_AudioCommon_Result OH_AudioWorkgroup_Stop(OH_AudioWorkgroup *group)](#oh_audioworkgroup_stop) | 通知系统group指向的音频工作组任务已完成。 |
43
44## 函数说明
45
46### OH_AudioManager_GetAudioResourceManager()
47
48```
49OH_AudioCommon_Result OH_AudioManager_GetAudioResourceManager(OH_AudioResourceManager **resourceManager)
50```
51
52**描述**
53
54获取音频资源管理器。<br> 使用音频资源管理器相关功能,首先需要获取音频资源管理器实例。
55
56**起始版本:** 20
57
58
59**参数:**
60
61| 参数项 | 描述 |
62| -- | -- |
63| [OH_AudioResourceManager](capi-ohaudio-oh-audioresourcemanager.md) **resourceManager | 指向OH_AudioResourceManager用于接收创建的音频资源管理器实例。 |
64
65**返回:**
66
67| 类型 | 说明 |
68| -- | -- |
69| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) |  AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br>         AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数resourceManager为nullptr。 |
70
71### OH_AudioResourceManager_CreateWorkgroup()
72
73```
74OH_AudioCommon_Result OH_AudioResourceManager_CreateWorkgroup(OH_AudioResourceManager *resourceManager,const char *name, OH_AudioWorkgroup **group)
75```
76
77**描述**
78
79创建音频工作组。
80
81**起始版本:** 20
82
83
84**参数:**
85
86| 参数项 | 描述 |
87| -- | -- |
88| [OH_AudioResourceManager](capi-ohaudio-oh-audioresourcemanager.md) *resourceManager | 指向[OH_AudioManager_GetAudioResourceManager](capi-native-audio-resource-manager-h.md#oh_audiomanager_getaudioresourcemanager)创建的音频资源管理器实例OH_AudioResourceManager。 |
89| const char *name | 要创建的音频工作组的名称。 |
90| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) **group | 指向OH_AudioWorkgroup用于接收返回的音频工作组实例的指针。 |
91
92**返回:**
93
94| 类型 | 说明 |
95| -- | -- |
96| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) |  AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br>         AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:<br>                                                        1. 参数resourceManager为nullptr;<br>                                                        2. 参数name为nullptr;<br>                                                        3. 参数group为nullptr。<br>         AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE:创建workgroup失败,返回workgroup为nullptr。 |
97
98### OH_AudioResourceManager_ReleaseWorkgroup()
99
100```
101OH_AudioCommon_Result OH_AudioResourceManager_ReleaseWorkgroup(OH_AudioResourceManager *resourceManager,OH_AudioWorkgroup *group)
102```
103
104**描述**
105
106释放音频工作组。
107
108**起始版本:** 20
109
110
111**参数:**
112
113| 参数项 | 描述 |
114| -- | -- |
115| [OH_AudioResourceManager](capi-ohaudio-oh-audioresourcemanager.md) *resourceManager | 指向[OH_AudioManager_GetAudioResourceManager](capi-native-audio-resource-manager-h.md#oh_audiomanager_getaudioresourcemanager)创建的音频资源管理器实例OH_AudioResourceManager。 |
116| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) *group | 指向[OH_AudioResourceManager_CreateWorkgroup](capi-native-audio-resource-manager-h.md#oh_audioresourcemanager_createworkgroup)创建的音频工作组实例OH_AudioWorkgroup。 |
117
118**返回:**
119
120| 类型 | 说明 |
121| -- | -- |
122| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) |  AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br>         AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:<br>                                                        1. 参数resourceManager为nullptr;<br>                                                        2. 参数group为nullptr。<br>         AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE:释放workgroup失败。 |
123
124### OH_AudioWorkgroup_AddCurrentThread()
125
126```
127OH_AudioCommon_Result OH_AudioWorkgroup_AddCurrentThread(OH_AudioWorkgroup *group, int32_t *tokenId)
128```
129
130**描述**
131
132将当前线程加入group指向的音频工作组。
133
134**起始版本:** 20
135
136
137**参数:**
138
139| 参数项 | 描述 |
140| -- | -- |
141| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) *group | 指向[OH_AudioResourceManager_CreateWorkgroup](capi-native-audio-resource-manager-h.md#oh_audioresourcemanager_createworkgroup)创建的音频工作组实例OH_AudioWorkgroup。 |
142| int32_t *tokenId | 用于接收加入音频工作组的线程号。 |
143
144**返回:**
145
146| 类型 | 说明 |
147| -- | -- |
148| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) |  AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br>         AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数group为nullptr。<br>         AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE:当前线程加入分组失败。 |
149
150### OH_AudioWorkgroup_RemoveThread()
151
152```
153OH_AudioCommon_Result OH_AudioWorkgroup_RemoveThread(OH_AudioWorkgroup *group, int32_t tokenId)
154```
155
156**描述**
157
158将tokenId对应的线程从group音频工作组中移除。
159
160**起始版本:** 20
161
162
163**参数:**
164
165| 参数项 | 描述 |
166| -- | -- |
167| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) *group | 指向[OH_AudioResourceManager_CreateWorkgroup](capi-native-audio-resource-manager-h.md#oh_audioresourcemanager_createworkgroup)创建的音频工作组实例OH_AudioWorkgroup。 |
168| int32_t tokenId | 要从音频工作组中移除的线程号。 |
169
170**返回:**
171
172| 类型 | 说明 |
173| -- | -- |
174| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) |  AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br>         AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数group为nullptr。<br>         AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE:当前线程从分组中移除失败。 |
175
176### OH_AudioWorkgroup_Start()
177
178```
179OH_AudioCommon_Result OH_AudioWorkgroup_Start(OH_AudioWorkgroup *group, uint64_t startTime, uint64_t deadlineTime)
180```
181
182**描述**
183
184通知系统group指向的音频工作组开始工作,并告知系统当前工作组预期完成时间。
185
186**起始版本:** 20
187
188
189**参数:**
190
191| 参数项 | 描述 |
192| -- | -- |
193| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) *group | 指向[OH_AudioResourceManager_CreateWorkgroup](capi-native-audio-resource-manager-h.md#oh_audioresourcemanager_createworkgroup)创建的音频工作组实例OH_AudioWorkgroup。 |
194| uint64_t startTime | 当前音频工作组启动的时间点。 |
195| uint64_t deadlineTime | 当前音频工作组预期完成的时间。 |
196
197**返回:**
198
199| 类型 | 说明 |
200| -- | -- |
201| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) |  AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br>         AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数group为nullptr。<br>         AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE:当前工作组通知系统启动失败。 |
202
203### OH_AudioWorkgroup_Stop()
204
205```
206OH_AudioCommon_Result OH_AudioWorkgroup_Stop(OH_AudioWorkgroup *group)
207```
208
209**描述**
210
211通知系统group指向的音频工作组任务已完成。
212
213**起始版本:** 20
214
215
216**参数:**
217
218| 参数项 | 描述 |
219| -- | -- |
220| [OH_AudioWorkgroup](capi-ohaudio-oh-audioworkgroup.md) *group | 指向[OH_AudioResourceManager_CreateWorkgroup](capi-native-audio-resource-manager-h.md#oh_audioresourcemanager_createworkgroup)创建的音频工作组实例OH_AudioWorkgroup。 |
221
222**返回:**
223
224| 类型 | 说明 |
225| -- | -- |
226| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br>         AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数group为nullptr。<br>         AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE:当前工作组通知系统结束失败。 |
227
228
229