1# lowpower_audio_sink_base.h 2 3## Overview 4 5The file declares the structs and enums of the LowPowerAudioSink. 6 7**File to include**: <multimedia/player_framework/lowpower_audio_sink_base.h> 8 9**Library**: liblowpower_avsink.so 10 11**System capability**: SystemCapability.Multimedia.Media.LowPowerAVSink 12 13**Since**: 20 14 15**Related module**: [LowPowerAudioSink](capi-lowpoweraudiosink.md) 16 17## Summary 18 19### Structs 20 21| Name| typedef Keyword| Description| 22| -- | -- | -- | 23| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md) | OH_LowPowerAudioSink | Describes the declaration for the LowPowerAudioSink.| 24| [OH_LowPowerAudioSinkCallback](capi-lowpoweraudiosink-oh-lowpoweraudiosinkcallback.md) | OH_LowPowerAudioSinkCallback | Contains a set of callback function pointers for the LowPowerAudioSink.<br>To ensure the normal running of the LowPowerAudioSink, you must register the instance of this struct with the [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md) instance and process the information reported by the callback functions.| 25 26### Functions 27 28| Name| typedef Keyword| Description| 29| -- | -- | -- | 30| [typedef void (\*OH_LowPowerAudioSink_OnError)(OH_LowPowerAudioSink* sink, OH_AVErrCode errCode, const char* errorMsg, void* userData)](#oh_lowpoweraudiosink_onerror) | OH_LowPowerAudioSink_OnError | Called when an error occurs in the LowPowerAudioSink.| 31| [typedef void (\*OH_LowPowerAudioSink_OnPositionUpdated)(OH_LowPowerAudioSink* sink, int64_t currentPosition, void* userData)](#oh_lowpoweraudiosink_onpositionupdated) | OH_LowPowerAudioSink_OnPositionUpdated | Called when the playback position is updated in the LowPowerAudioSink.| 32| [typedef void (\*OH_LowPowerAudioSink_OnDataNeeded)(OH_LowPowerAudioSink* sink, OH_AVSamplesBuffer* samples, void* userData)](#oh_lowpoweraudiosink_ondataneeded) | OH_LowPowerAudioSink_OnDataNeeded | Called when the LowPowerAudioSink needs more data.| 33| [typedef void (\*OH_LowPowerAudioSink_OnInterrupted)(OH_LowPowerAudioSink* sink, OH_AudioInterrupt_ForceType type, OH_AudioInterrupt_Hint hint, void* userData)](#oh_lowpoweraudiosink_oninterrupted) | OH_LowPowerAudioSink_OnInterrupted | Called when the audio focus is interrupted in the LowPowerAudioSink.| 34| [typedef void (\*OH_LowPowerAudioSink_OnDeviceChanged)(OH_LowPowerAudioSink* sink, OH_AudioStream_DeviceChangeReason reason, void* userData)](#oh_lowpoweraudiosink_ondevicechanged) | OH_LowPowerAudioSink_OnDeviceChanged | Called when the audio device changes in the LowPowerAudioSink.| 35| [typedef void (\*OH_LowPowerAudioSink_OnEos)(OH_LowPowerAudioSink* sink, void* userData)](#oh_lowpoweraudiosink_oneos) | OH_LowPowerAudioSink_OnEos | Called when the playback is complete in the LowPowerAudioSink. This callback is included in [OH_LowPowerAudioSinkCallback](capi-lowpoweraudiosink-oh-lowpoweraudiosinkcallback.md).| 36 37## Function Description 38 39### OH_LowPowerAudioSink_OnError() 40 41``` 42typedef void (*OH_LowPowerAudioSink_OnError)(OH_LowPowerAudioSink* sink,OH_AVErrCode errCode,const char* errorMsg,void* userData) 43``` 44 45**Description** 46 47Called when an error occurs in the LowPowerAudioSink. 48 49**Since**: 20 50 51 52**Parameters** 53 54| Name| Description| 55| -- | -- | 56| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 57| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) errorCode | Error code reported when an error occurs.| 58| const char* errorMsg | Pointer to an error message.| 59| void* userData | Pointer to user-defined data.| 60 61### OH_LowPowerAudioSink_OnPositionUpdated() 62 63``` 64typedef void (*OH_LowPowerAudioSink_OnPositionUpdated)(OH_LowPowerAudioSink* sink,int64_t currentPosition,void* userData) 65``` 66 67**Description** 68 69Called when the playback position is updated in the LowPowerAudioSink. 70 71**Since**: 20 72 73 74**Parameters** 75 76| Name| Description| 77| -- | -- | 78| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 79| int64_t currentPosition | Current playback position.| 80| void* userData | Pointer to user-defined data.| 81 82### OH_LowPowerAudioSink_OnDataNeeded() 83 84``` 85typedef void (*OH_LowPowerAudioSink_OnDataNeeded)(OH_LowPowerAudioSink* sink,OH_AVSamplesBuffer* samples,void* userData) 86``` 87 88**Description** 89 90Called when the LowPowerAudioSink needs more data. 91 92**Since**: 20 93 94 95**Parameters** 96 97| Name| Description| 98| -- | -- | 99| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 100| [OH_AVSamplesBuffer](capi-avsinkbase-oh-avsamplesbuffer.md)* samples | Pointer to the AVSamplesBuffer instance to be written.| 101| void* userData | Pointer to user-defined data.| 102 103### OH_LowPowerAudioSink_OnInterrupted() 104 105``` 106typedef void (*OH_LowPowerAudioSink_OnInterrupted)(OH_LowPowerAudioSink* sink,OH_AudioInterrupt_ForceType type,OH_AudioInterrupt_Hint hint,void* userData) 107``` 108 109**Description** 110 111Called when the audio focus is interrupted in the LowPowerAudioSink. 112 113**Since**: 20 114 115 116**Parameters** 117 118| Name| Description| 119| -- | -- | 120| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 121| [OH_AudioInterrupt_ForceType](../apis-audio-kit/capi-native-audiostream-base-h.md#oh_audiointerrupt_forcetype) type | Type of force that causes the audio interruption.| 122| [OH_AudioInterrupt_Hint](../apis-audio-kit/capi-native-audiostream-base-h.md#oh_audiointerrupt_hint) hint | Hint provided along with audio interruption.| 123| void* userData | Pointer to user-defined data.| 124 125### OH_LowPowerAudioSink_OnDeviceChanged() 126 127``` 128typedef void (*OH_LowPowerAudioSink_OnDeviceChanged)(OH_LowPowerAudioSink* sink,OH_AudioStream_DeviceChangeReason reason,void* userData) 129``` 130 131**Description** 132 133Called when the audio device changes in the LowPowerAudioSink. 134 135**Since**: 20 136 137 138**Parameters** 139 140| Name| Description| 141| -- | -- | 142| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 143| [OH_AudioStream_DeviceChangeReason](../apis-audio-kit/capi-native-audiostream-base-h.md#oh_audiostream_devicechangereason) reason | Reason for the output device changes.| 144| void* userData | Pointer to user-defined data.| 145 146### OH_LowPowerAudioSink_OnEos() 147 148``` 149typedef void (*OH_LowPowerAudioSink_OnEos)(OH_LowPowerAudioSink* sink, void* userData) 150``` 151 152**Description** 153 154Called when the playback is complete in the LowPowerAudioSink. This callback is included in [OH_LowPowerAudioSinkCallback](capi-lowpoweraudiosink-oh-lowpoweraudiosinkcallback.md). 155 156**Since**: 20 157 158 159**Parameters** 160 161| Name| Description| 162| -- | -- | 163| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 164| void* userData | Pointer to user-defined data.| 165