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