1# native_audio_volume_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声明音频音量管理器接口。该文件接口用于创建AudioVolumeManager。 12 13**引用文件:** <ohaudio/native_audio_volume_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_AudioVolumeManager](capi-ohaudio-oh-audiovolumemanager.md) | OH_AudioVolumeManager | 声明音频音量管理器。音频音量管理器提供多种函数,供开发人员获取系统音量信息。 | 30 31### 函数 32 33| 名称 | typedef关键字 | 描述 | 34| -- | -- | -- | 35| [typedef void (\*OH_AudioVolumeManager_OnStreamVolumeChangeCallback)(void *userData, OH_AudioStream_Usage usage, int32_t volumeLevel, bool updateUi)](#oh_audiovolumemanager_onstreamvolumechangecallback) | OH_AudioVolumeManager_OnStreamVolumeChangeCallback | 音量变化回调函数的原型定义,用于传递给[OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback](capi-native-audio-volume-manager-h.md#oh_audiovolumemanager_registerstreamvolumechangecallback)。 | 36| [typedef void (\*OH_AudioVolumeManager_OnRingerModeChangeCallback)(void *userData, OH_AudioRingerMode ringerMode)](#oh_audiovolumemanager_onringermodechangecallback) | OH_AudioVolumeManager_OnRingerModeChangeCallback | 铃声模式变化回调函数的原型定义,用于传递给[OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback](capi-native-audio-volume-manager-h.md#oh_audiovolumemanager_registerstreamvolumechangecallback)。 | 37| [OH_AudioCommon_Result OH_AudioManager_GetAudioVolumeManager(OH_AudioVolumeManager **volumeManager)](#oh_audiomanager_getaudiovolumemanager) | - | 使用音量管理器相关功能,首先需要获取音量管理器实例。 | 38| [OH_AudioCommon_Result OH_AudioVolumeManager_GetMaxVolumeByUsage(OH_AudioVolumeManager *volumeManager, OH_AudioStream_Usage usage, int32_t *maxVolumeLevel)](#oh_audiovolumemanager_getmaxvolumebyusage) | - | 获取指定用途类型音频流的最大音量等级。 | 39| [OH_AudioCommon_Result OH_AudioVolumeManager_GetMinVolumeByUsage(OH_AudioVolumeManager *volumeManager, OH_AudioStream_Usage usage, int32_t *minVolumeLevel)](#oh_audiovolumemanager_getminvolumebyusage) | - | 获取指定用途类型音频流的最小音量等级。 | 40| [OH_AudioCommon_Result OH_AudioVolumeManager_GetVolumeByUsage(OH_AudioVolumeManager *volumeManager, OH_AudioStream_Usage usage, int32_t *volumeLevel)](#oh_audiovolumemanager_getvolumebyusage) | - | 获取指定用途类型音频流的系统音量等级。 | 41| [OH_AudioCommon_Result OH_AudioVolumeManager_IsMuteByUsage(OH_AudioVolumeManager *volumeManager, OH_AudioStream_Usage usage, bool *muted)](#oh_audiovolumemanager_ismutebyusage) | - | 检查指定用途类型的音频流是否处于静音状态。 | 42| [OH_AudioCommon_Result OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(OH_AudioVolumeManager *volumeManager, OH_AudioStream_Usage usage, OH_AudioVolumeManager_OnStreamVolumeChangeCallback callback, void *userData)](#oh_audiovolumemanager_registerstreamvolumechangecallback) | - | 注册音频流音量修改回调函数。 | 43| [OH_AudioCommon_Result OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(OH_AudioVolumeManager *volumeManager, OH_AudioVolumeManager_OnStreamVolumeChangeCallback callback)](#oh_audiovolumemanager_unregisterstreamvolumechangecallback) | - | 取消注册音频流音量修改回调函数。 | 44| [OH_AudioCommon_Result OH_AudioVolumeManager_GetRingerMode(OH_AudioVolumeManager *volumeManager, OH_AudioRingerMode *ringerMode)](#oh_audiovolumemanager_getringermode) | - | 获取当前铃声模式。 | 45| [OH_AudioCommon_Result OH_AudioVolumeManager_RegisterRingerModeChangeCallback(OH_AudioVolumeManager *volumeManager, OH_AudioVolumeManager_OnRingerModeChangeCallback callback, void *userData)](#oh_audiovolumemanager_registerringermodechangecallback) | - | 注册铃声模式切换回调函数。 | 46| [OH_AudioCommon_Result OH_AudioVolumeManager_UnregisterRingerModeChangeCallback(OH_AudioVolumeManager *volumeManager, OH_AudioVolumeManager_OnRingerModeChangeCallback callback)](#oh_audiovolumemanager_unregisterringermodechangecallback) | - | 取消注册铃声模式切换回调函数。 | 47 48## 函数说明 49 50### OH_AudioVolumeManager_OnStreamVolumeChangeCallback() 51 52``` 53typedef void (*OH_AudioVolumeManager_OnStreamVolumeChangeCallback)(void *userData, OH_AudioStream_Usage usage, int32_t volumeLevel, bool updateUi) 54``` 55 56**描述** 57 58音量变化回调函数的原型定义,用于传递给[OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback](capi-native-audio-volume-manager-h.md#oh_audiovolumemanager_registerstreamvolumechangecallback)。 59 60**起始版本:** 20 61 62 63**参数:** 64 65| 参数项 | 描述 | 66| -- | -- | 67| void *userData | 用户自定义数据指针。 | 68| [OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage) usage | 对应音量被调整的流的用途类型。 | 69| int32_t volumeLevel | 修改后的音量。 | 70| bool updateUi | 是否在UI界面显示音量变化。true表示显示,false表示不显示。 | 71 72### OH_AudioVolumeManager_OnRingerModeChangeCallback() 73 74``` 75typedef void (*OH_AudioVolumeManager_OnRingerModeChangeCallback)(void *userData, OH_AudioRingerMode ringerMode) 76``` 77 78**描述** 79 80铃声模式变化回调函数的原型定义,用于传递给[OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback](capi-native-audio-volume-manager-h.md#oh_audiovolumemanager_registerstreamvolumechangecallback)。 81 82**起始版本:** 20 83 84 85**参数:** 86 87| 参数项 | 描述 | 88| -- | -- | 89| void *userData | 用户自定义数据指针。 | 90| [OH_AudioRingerMode](capi-native-audio-common-h.md#oh_audioringermode) ringerMode | 切换后的铃声模式。 | 91 92### OH_AudioManager_GetAudioVolumeManager() 93 94``` 95OH_AudioCommon_Result OH_AudioManager_GetAudioVolumeManager(OH_AudioVolumeManager **volumeManager) 96``` 97 98**描述** 99 100使用音量管理器相关功能,首先需要获取音量管理器实例。 101 102**起始版本:** 20 103 104 105**参数:** 106 107| 参数项 | 描述 | 108| -- | -- | 109| [OH_AudioVolumeManager](capi-ohaudio-oh-audiovolumemanager.md) **volumeManager | 指向OH_AudioVolumeManager用于接收创建的音量管理器实例。 | 110 111**返回:** 112 113| 类型 | 说明 | 114| -- | -- | 115| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br> AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数volumeManager为nullptr。 | 116 117### OH_AudioVolumeManager_GetMaxVolumeByUsage() 118 119``` 120OH_AudioCommon_Result OH_AudioVolumeManager_GetMaxVolumeByUsage(OH_AudioVolumeManager *volumeManager, OH_AudioStream_Usage usage, int32_t *maxVolumeLevel) 121``` 122 123**描述** 124 125获取指定用途类型音频流的最大音量等级。 126 127**起始版本:** 20 128 129 130**参数:** 131 132| 参数项 | 描述 | 133| -- | -- | 134| [OH_AudioVolumeManager](capi-ohaudio-oh-audiovolumemanager.md) *volumeManager | 指向OH_AudioVolumeManager用于接收创建的音量管理器实例。 | 135| [OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage) usage | 用于映射特定音量类型的音频流用途类型。 | 136| int32_t *maxVolumeLevel | 用于接收返回的最大音量。 | 137 138**返回:** 139 140| 类型 | 说明 | 141| -- | -- | 142| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br> AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数volumeManager或maxVolumeLevel为nullptr,或usage是无效值。<br> AUDIOCOMMON_RESULT_ERROR_SYSTEM:系统处理错误。 | 143 144### OH_AudioVolumeManager_GetMinVolumeByUsage() 145 146``` 147OH_AudioCommon_Result OH_AudioVolumeManager_GetMinVolumeByUsage(OH_AudioVolumeManager *volumeManager, OH_AudioStream_Usage usage, int32_t *minVolumeLevel) 148``` 149 150**描述** 151 152获取指定用途类型音频流的最小音量等级。 153 154**起始版本:** 20 155 156 157**参数:** 158 159| 参数项 | 描述 | 160| -- | -- | 161| [OH_AudioVolumeManager](capi-ohaudio-oh-audiovolumemanager.md) *volumeManager | 指向OH_AudioVolumeManager用于接收创建的音量管理器实例。 | 162| [OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage) usage | 用于映射特定音量类型的音频流用途类型。 | 163| int32_t *minVolumeLevel | 用于接收返回的最小音量。 | 164 165**返回:** 166 167| 类型 | 说明 | 168| -- | -- | 169| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br> AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数volumeManager或minVolumeLevel为nullptr,或usage是无效值。<br> AUDIOCOMMON_RESULT_ERROR_SYSTEM:系统处理错误。 | 170 171### OH_AudioVolumeManager_GetVolumeByUsage() 172 173``` 174OH_AudioCommon_Result OH_AudioVolumeManager_GetVolumeByUsage(OH_AudioVolumeManager *volumeManager, OH_AudioStream_Usage usage, int32_t *volumeLevel) 175``` 176 177**描述** 178 179获取指定用途类型音频流的系统音量等级。 180 181**起始版本:** 20 182 183 184**参数:** 185 186| 参数项 | 描述 | 187| -- | -- | 188| [OH_AudioVolumeManager](capi-ohaudio-oh-audiovolumemanager.md) *volumeManager | 指向OH_AudioVolumeManager用于接收创建的音量管理器实例。 | 189| [OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage) usage | 用于映射特定音量类型的音频流用途类型。 | 190| int32_t *volumeLevel | 用于接收返回的系统音量。 | 191 192**返回:** 193 194| 类型 | 说明 | 195| -- | -- | 196| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br> AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数volumeManager或volumeLevel为nullptr,或usage是无效值。<br> AUDIOCOMMON_RESULT_ERROR_SYSTEM:系统处理错误。 | 197 198### OH_AudioVolumeManager_IsMuteByUsage() 199 200``` 201OH_AudioCommon_Result OH_AudioVolumeManager_IsMuteByUsage(OH_AudioVolumeManager *volumeManager, OH_AudioStream_Usage usage, bool *muted) 202``` 203 204**描述** 205 206检查指定用途类型的音频流是否处于静音状态。 207 208**起始版本:** 20 209 210 211**参数:** 212 213| 参数项 | 描述 | 214| -- | -- | 215| [OH_AudioVolumeManager](capi-ohaudio-oh-audiovolumemanager.md) *volumeManager | 指向OH_AudioVolumeManager用于接收创建的音量管理器实例。 | 216| [OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage) usage | 用于映射特定音量类型的音频流用途类型。 | 217| bool *muted | 用于接收返回的音频流是否静音。true表示静音,false表示未静音。 | 218 219**返回:** 220 221| 类型 | 说明 | 222| -- | -- | 223| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br> AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数volumeManager或muted为nullptr,或usage是无效值。<br> AUDIOCOMMON_RESULT_ERROR_SYSTEM:系统处理错误。 | 224 225### OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback() 226 227``` 228OH_AudioCommon_Result OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback(OH_AudioVolumeManager *volumeManager, OH_AudioStream_Usage usage, OH_AudioVolumeManager_OnStreamVolumeChangeCallback callback, void *userData) 229``` 230 231**描述** 232 233注册音频流音量修改回调函数。 234 235**起始版本:** 20 236 237 238**参数:** 239 240| 参数项 | 描述 | 241| -- | -- | 242| [OH_AudioVolumeManager](capi-ohaudio-oh-audiovolumemanager.md) *volumeManager | 指向OH_AudioVolumeManager用于接收创建的音量管理器实例。 | 243| [OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage) usage | 监听用于映射特定音量类型的音频流用途类型。 | 244| [OH_AudioVolumeManager_OnStreamVolumeChangeCallback](capi-native-audio-volume-manager-h.md#oh_audiovolumemanager_onstreamvolumechangecallback) callback | 监听的音频流音量发生时,将调用此回调函数[OH_AudioVolumeManager_OnStreamVolumeChangeCallback](capi-native-audio-volume-manager-h.md#oh_audiovolumemanager_onstreamvolumechangecallback)。 | 245| void *userData | 用户自定义数据指针。 | 246 247**返回:** 248 249| 类型 | 说明 | 250| -- | -- | 251| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br> AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数volumeManager、usage或callback为nullptr,或usage是无效值。<br> AUDIOCOMMON_RESULT_ERROR_SYSTEM:系统处理错误。 | 252 253### OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback() 254 255``` 256OH_AudioCommon_Result OH_AudioVolumeManager_UnregisterStreamVolumeChangeCallback(OH_AudioVolumeManager *volumeManager, OH_AudioVolumeManager_OnStreamVolumeChangeCallback callback) 257``` 258 259**描述** 260 261取消注册音频流音量修改回调函数。 262 263**起始版本:** 20 264 265 266**参数:** 267 268| 参数项 | 描述 | 269| -- | -- | 270| [OH_AudioVolumeManager](capi-ohaudio-oh-audiovolumemanager.md) *volumeManager | 指向OH_AudioVolumeManager用于接收创建的音量管理器实例。 | 271| [OH_AudioVolumeManager_OnStreamVolumeChangeCallback](capi-native-audio-volume-manager-h.md#oh_audiovolumemanager_onstreamvolumechangecallback) callback | 指向[OH_AudioVolumeManager_RegisterStreamVolumeChangeCallback](capi-native-audio-volume-manager-h.md#oh_audiovolumemanager_registerstreamvolumechangecallback)传入的回调函数,用于取消注册。 | 272 273**返回:** 274 275| 类型 | 说明 | 276| -- | -- | 277| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br> AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数volumeManager或callback为nullptr。<br> AUDIOCOMMON_RESULT_ERROR_SYSTEM:系统处理错误。 | 278 279### OH_AudioVolumeManager_GetRingerMode() 280 281``` 282OH_AudioCommon_Result OH_AudioVolumeManager_GetRingerMode(OH_AudioVolumeManager *volumeManager, OH_AudioRingerMode *ringerMode) 283``` 284 285**描述** 286 287获取当前铃声模式。 288 289**起始版本:** 20 290 291 292**参数:** 293 294| 参数项 | 描述 | 295| -- | -- | 296| [OH_AudioVolumeManager](capi-ohaudio-oh-audiovolumemanager.md) *volumeManager | 指向OH_AudioVolumeManager用于接收创建的音量管理器实例。 | 297| [OH_AudioRingerMode](capi-native-audio-common-h.md#oh_audioringermode) *ringerMode | 用于接收返回的铃声模式。 | 298 299**返回:** 300 301| 类型 | 说明 | 302| -- | -- | 303| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br> AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数volumeManager或ringerMode为nullptr。<br> AUDIOCOMMON_RESULT_ERROR_SYSTEM:系统处理错误。 | 304 305### OH_AudioVolumeManager_RegisterRingerModeChangeCallback() 306 307``` 308OH_AudioCommon_Result OH_AudioVolumeManager_RegisterRingerModeChangeCallback(OH_AudioVolumeManager *volumeManager, OH_AudioVolumeManager_OnRingerModeChangeCallback callback, void *userData) 309``` 310 311**描述** 312 313注册铃声模式切换回调函数。 314 315**起始版本:** 20 316 317 318**参数:** 319 320| 参数项 | 描述 | 321| -- | -- | 322| [OH_AudioVolumeManager](capi-ohaudio-oh-audiovolumemanager.md) *volumeManager | 指向OH_AudioVolumeManager用于接收创建的音量管理器实例。 | 323| [OH_AudioVolumeManager_OnRingerModeChangeCallback](capi-native-audio-volume-manager-h.md#oh_audiovolumemanager_onringermodechangecallback) callback | 监听的铃声模式发生切换时,将调用此回调函数[OH_AudioVolumeManager_OnRingerModeChangeCallback](capi-native-audio-volume-manager-h.md#oh_audiovolumemanager_onringermodechangecallback)。 | 324| void *userData | 用户自定义数据指针。 | 325 326**返回:** 327 328| 类型 | 说明 | 329| -- | -- | 330| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br> AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数volumeManager或callback为nullptr。<br> AUDIOCOMMON_RESULT_ERROR_SYSTEM:系统处理错误。 | 331 332### OH_AudioVolumeManager_UnregisterRingerModeChangeCallback() 333 334``` 335OH_AudioCommon_Result OH_AudioVolumeManager_UnregisterRingerModeChangeCallback(OH_AudioVolumeManager *volumeManager, OH_AudioVolumeManager_OnRingerModeChangeCallback callback) 336``` 337 338**描述** 339 340取消注册铃声模式切换回调函数。 341 342**起始版本:** 20 343 344 345**参数:** 346 347| 参数项 | 描述 | 348| -- | -- | 349| [OH_AudioVolumeManager](capi-ohaudio-oh-audiovolumemanager.md) *volumeManager | 指向OH_AudioVolumeManager用于接收创建的音量管理器实例。 | 350| [OH_AudioVolumeManager_OnRingerModeChangeCallback](capi-native-audio-volume-manager-h.md#oh_audiovolumemanager_onringermodechangecallback) callback | 指向[OH_AudioVolumeManager_RegisterRingerModeChangeCallback](capi-native-audio-volume-manager-h.md#oh_audiovolumemanager_registerringermodechangecallback)传入的回调函数,用于取消注册。 | 351 352**返回:** 353 354| 类型 | 说明 | 355| -- | -- | 356| [OH_AudioCommon_Result](capi-native-audio-common-h.md#oh_audiocommon_result) | AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。<br> AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数volumeManager或callback为nullptr。<br> AUDIOCOMMON_RESULT_ERROR_SYSTEM:系统处理错误。 | 357 358 359