1# native_audio_manager.h 2 3## Overview 4 5The file declares the functions related to an audio manager. 6 7**File to include**: <ohaudio/native_audio_manager.h> 8 9**Library**: libohaudio.so 10 11**System capability**: SystemCapability.Multimedia.Audio.Core 12 13**Since**: 12 14 15**Related module**: [OHAudio](capi-ohaudio.md) 16 17## Summary 18 19### Structs 20 21| Name| typedef Keyword| Description| 22| -- | -- | -- | 23| [OH_AudioManager](capi-ohaudio-oh-audiomanager.md) | OH_AudioManager | Describes an audio manager, which is used for audio management.| 24 25### Functions 26 27| Name| typedef Keyword| Description| 28| -- | -- | -- | 29| [typedef void (\*OH_AudioManager_OnAudioSceneChangeCallback)(void *userData,OH_AudioScene scene)](#oh_audiomanager_onaudioscenechangecallback) | OH_AudioManager_OnAudioSceneChangeCallback | Defines the prototype of the audio scene change callback function, which is passed in [OH_AudioManager_RegisterAudioSceneChangeCallback](capi-native-audio-manager-h.md#oh_audiomanager_registeraudioscenechangecallback).| 30| [OH_AudioCommon_Result OH_GetAudioManager(OH_AudioManager **audioManager)](#oh_getaudiomanager) | - | Obtains an OH_AudioManager instance.<br>Before using the features related to the audio manager, you must obtain an OH_AudioManager instance. | 31| [OH_AudioCommon_Result OH_GetAudioScene(OH_AudioManager* manager, OH_AudioScene *scene)](#oh_getaudioscene) | - | Obtains the audio scene.| 32| [OH_AudioCommon_Result OH_AudioManager_RegisterAudioSceneChangeCallback(OH_AudioManager *manager,OH_AudioManager_OnAudioSceneChangeCallback callback, void *userData)](#oh_audiomanager_registeraudioscenechangecallback) | - | Registers the audio scene change callback function.| 33| [OH_AudioCommon_Result OH_AudioManager_UnregisterAudioSceneChangeCallback(OH_AudioManager *manager,OH_AudioManager_OnAudioSceneChangeCallback callback)](#oh_audiomanager_unregisteraudioscenechangecallback) | - | Unregisters the audio scene change callback function.| 34 35## Function Description 36 37### OH_AudioManager_OnAudioSceneChangeCallback() 38 39``` 40typedef void (*OH_AudioManager_OnAudioSceneChangeCallback) (void *userData, OH_AudioScene scene) 41``` 42 43**Description** 44 45Defines the prototype of the audio scene change callback function, which is passed in [OH_AudioManager_RegisterAudioSceneChangeCallback](capi-native-audio-manager-h.md#oh_audiomanager_registeraudioscenechangecallback). 46 47**Since**: 20 48 49 50**Parameters** 51 52| Name| Description| 53| -- | -- | 54| void *userData | Pointer to user data.| 55| [OH_AudioScene](capi-native-audio-common-h.md#oh_audioscene) scene | Audio scene after change.| 56 57### OH_GetAudioManager() 58 59``` 60OH_AudioCommon_Result OH_GetAudioManager(OH_AudioManager **audioManager) 61``` 62 63**Description** 64 65Obtains an OH_AudioManager instance.<br> Before using the features related to the audio manager, you must obtain an OH_AudioManager instance. 66 67**Since**: 12 68 69 70**Parameters** 71 72| Name| Description| 73| -- | -- | 74| [OH_AudioManager](capi-ohaudio-oh-audiomanager.md) **audioManager | Double pointer to an [OH_AudioManager](capi-ohaudio-oh-audiomanager.md), which is used to receive the audio manager instance created.| 75 76**Returns** 77 78| Type| Description| 79| -- | -- | 80| [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 **audioManager** parameter is nullptr. | 81 82### OH_GetAudioScene() 83 84``` 85OH_AudioCommon_Result OH_GetAudioScene(OH_AudioManager* manager, OH_AudioScene *scene) 86``` 87 88**Description** 89 90Obtains the audio scene. 91 92**Since**: 12 93 94 95**Parameters** 96 97| Name| Description| 98| -- | -- | 99| [OH_AudioManager](capi-ohaudio-oh-audiomanager.md)* manager | Pointer to an [OH_AudioManager](capi-ohaudio-oh-audiomanager.md) instance, which is created by calling [OH_GetAudioManager](capi-native-audio-manager-h.md#oh_getaudiomanager).| 100| [OH_AudioScene](capi-native-audio-common-h.md#oh_audioscene) *scene | Pointer to an [OH_AudioScene](capi-native-audio-common-h.md#oh_audioscene), which is used to receive the audio scene.| 101 102**Returns** 103 104| Type| Description| 105| -- | -- | 106| [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 **audioManager** parameter is nullptr.<br>2. The **scene** parameter is nullptr. | 107 108### OH_AudioManager_RegisterAudioSceneChangeCallback() 109 110``` 111OH_AudioCommon_Result OH_AudioManager_RegisterAudioSceneChangeCallback(OH_AudioManager *manager,OH_AudioManager_OnAudioSceneChangeCallback callback, void *userData) 112``` 113 114**Description** 115 116Registers the audio scene change callback function. 117 118**Since**: 20 119 120 121**Parameters** 122 123| Name| Description| 124| -- | -- | 125| [OH_AudioManager](capi-ohaudio-oh-audiomanager.md) *manager | Pointer to an [OH_AudioManager](capi-ohaudio-oh-audiomanager.md) instance.| 126| [OH_AudioManager_OnAudioSceneChangeCallback](capi-native-audio-manager-h.md#oh_audiomanager_onaudioscenechangecallback) callback | [OH_AudioManager_OnAudioSceneChangeCallback](capi-native-audio-manager-h.md#oh_audiomanager_onaudioscenechangecallback) invoked when the audio scene changes.| 127| void *userData | Pointer to user data.| 128 129**Returns** 130 131| Type| Description| 132| -- | -- | 133| [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 **manager** parameter is nullptr.<br>2. The **callback** parameter is nullptr.<br>**AUDIOCOMMON_RESULT_ERROR_SYSTEM**: System error. | 134 135### OH_AudioManager_UnregisterAudioSceneChangeCallback() 136 137``` 138OH_AudioCommon_Result OH_AudioManager_UnregisterAudioSceneChangeCallback(OH_AudioManager *manager,OH_AudioManager_OnAudioSceneChangeCallback callback) 139``` 140 141**Description** 142 143Unregisters the audio scene change callback function. 144 145**Since**: 20 146 147 148**Parameters** 149 150| Name| Description| 151| -- | -- | 152| [OH_AudioManager](capi-ohaudio-oh-audiomanager.md) *manager | Pointer to an [OH_AudioManager](capi-ohaudio-oh-audiomanager.md) instance.| 153| [OH_AudioManager_OnAudioSceneChangeCallback](capi-native-audio-manager-h.md#oh_audiomanager_onaudioscenechangecallback) callback | Pointer to the callback function passed by [OH_AudioManager_OnAudioSceneChangeCallback](capi-native-audio-manager-h.md#oh_audiomanager_onaudioscenechangecallback).| 154 155**Returns** 156 157| Type| Description| 158| -- | -- | 159| [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 **manager** parameter is nullptr.<br>2. The **callback** parameter is nullptr.<br>**AUDIOCOMMON_RESULT_ERROR_SYSTEM**: System error. | 160 161