1# lowpower_audio_sink.h 2 3## Overview 4 5The file declares the native APIs provided by the OH_LowPowerAudioSink instance. You can use the APIs to implement low-power audio playback. 6 7**File to include**: <multimedia/player_framework/lowpower_audio_sink.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### Functions 20 21| Name| Description| 22| -- | -- | 23| [OH_LowPowerAudioSink* OH_LowPowerAudioSink_CreateByMime(const char* mime)](#oh_lowpoweraudiosink_createbymime) | Creates an OH_LowPowerAudioSink instance.| 24| [OH_AVErrCode OH_LowPowerAudioSink_Configure(OH_LowPowerAudioSink* sink, const OH_AVFormat* format)](#oh_lowpoweraudiosink_configure) | Configures an OH_LowPowerAudioSink instance. This function must be called before [OH_LowPowerAudioSink_Prepare](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_prepare).| 25| [OH_AVErrCode OH_LowPowerAudioSink_SetParameter(OH_LowPowerAudioSink* sink, const OH_AVFormat* format)](#oh_lowpoweraudiosink_setparameter) | Sets parameters for an OH_LowPowerAudioSink instance. The parameters can be dynamically set after [OH_LowPowerAudioSink_Prepare](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_prepare).| 26| [OH_AVErrCode OH_LowPowerAudioSink_GetParameter(OH_LowPowerAudioSink* sink, OH_AVFormat* format)](#oh_lowpoweraudiosink_getparameter) | Obtains the parameters of an OH_LowPowerAudioSink instance.| 27| [OH_AVErrCode OH_LowPowerAudioSink_Prepare(OH_LowPowerAudioSink* sink)](#oh_lowpoweraudiosink_prepare) | Prepares an OH_LowPowerAudioSink instance for decoding and rendering. This function must be called after [OH_LowPowerAudioSink_Configure](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_configure).<br>Before calling this function, you must call [OH_LowPowerVideoSink_SetSyncAudioSink](capi-lowpower-video-sink-h.md#oh_lowpowervideosink_setsyncaudiosink) of the LowPowerVideoSink.| 28| [OH_AVErrCode OH_LowPowerAudioSink_Start(OH_LowPowerAudioSink* sink)](#oh_lowpoweraudiosink_start) | Starts an OH_LowPowerAudioSink instance. This function must be called after a successful call to [OH_LowPowerAudioSink_Prepare](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_prepare).<br>After successful startup, the OH_LowPowerAudioSink instance starts reporting the [OH_LowPowerAudioSink_OnDataNeeded](capi-lowpower-audio-sink-base-h.md#oh_lowpoweraudiosink_ondataneeded) event.| 29| [OH_AVErrCode OH_LowPowerAudioSink_Pause(OH_LowPowerAudioSink* sink)](#oh_lowpoweraudiosink_pause) | Pauses an OH_LowPowerAudioSink instance. This function must be called after [OH_LowPowerAudioSink_Start](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_start) or [OH_LowPowerAudioSink_Resume](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_resume).<br>After successful pause, the OH_LowPowerAudioSink instance stops reporting the [OH_LowPowerAudioSink_OnDataNeeded](capi-lowpower-audio-sink-base-h.md#oh_lowpoweraudiosink_ondataneeded) event.| 30| [OH_AVErrCode OH_LowPowerAudioSink_Resume(OH_LowPowerAudioSink* sink)](#oh_lowpoweraudiosink_resume) | Resumes an OH_LowPowerAudioSink instance. This function must be called after [OH_LowPowerAudioSink_Pause](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_pause).<br>After successful resumption, the OH_LowPowerAudioSink instance resumes reporting the [OH_LowPowerAudioSink_OnDataNeeded](capi-lowpower-audio-sink-base-h.md#oh_lowpoweraudiosink_ondataneeded) event.| 31| [OH_AVErrCode OH_LowPowerAudioSink_Flush(OH_LowPowerAudioSink* sink)](#oh_lowpoweraudiosink_flush) | Clears all input and output data from the decoders and render buffers of an OH_LowPowerAudioSink instance.<br>You are not advised to call this function after [OH_LowPowerAudioSink_Start](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_start) or [OH_LowPowerAudioSink_Resume](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_resume).<br>Note that if the decoder has previously received data, you must input the codec data again.| 32| [OH_AVErrCode OH_LowPowerAudioSink_Stop(OH_LowPowerAudioSink* sink)](#oh_lowpoweraudiosink_stop) | Stops an OH_LowPowerAudioSink instance.| 33| [OH_AVErrCode OH_LowPowerAudioSink_Reset(OH_LowPowerAudioSink* sink)](#oh_lowpoweraudiosink_reset) | Resets an OH_LowPowerAudioSink instance.<br>To reuse the instance, you must call [OH_LowPowerAudioSink_Configure](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_configure) to configure the instance again.| 34| [OH_AVErrCode OH_LowPowerAudioSink_Destroy(OH_LowPowerAudioSink* sink)](#oh_lowpoweraudiosink_destroy) | Clears internal resources of an OH_LowPowerAudioSink instance and destroys the instance. You only need to call the function once.| 35| [OH_AVErrCode OH_LowPowerAudioSink_SetVolume(OH_LowPowerAudioSink* sink, const float volume)](#oh_lowpoweraudiosink_setvolume) | Sets the rendering volume for an OH_LowPowerAudioSink instance.| 36| [OH_AVErrCode OH_LowPowerAudioSink_SetPlaybackSpeed(OH_LowPowerAudioSink* sink, const float speed)](#oh_lowpoweraudiosink_setplaybackspeed) | Sets the audio rendering speed for an OH_LowPowerAudioSink instance.| 37| [OH_AVErrCode OH_LowPowerAudioSink_ReturnSamples(OH_LowPowerAudioSink* sink, OH_AVSamplesBuffer* samples)](#oh_lowpoweraudiosink_returnsamples) | Provides a buffer to an OH_LowPowerAudioSink instance for procesing.| 38| [OH_AVErrCode OH_LowPowerAudioSink_RegisterCallback(OH_LowPowerAudioSink* sink, OH_LowPowerAudioSinkCallback* callback)](#oh_lowpoweraudiosink_registercallback) | Registers a callback for an OH_LowPowerAudioSink instance.| 39| [OH_LowPowerAudioSinkCallback* OH_LowPowerAudioSinkCallback_Create(void)](#oh_lowpoweraudiosinkcallback_create) | Creates an OH_LowPowerAudioSinkCallback instance.| 40| [OH_AVErrCode OH_LowPowerAudioSinkCallback_Destroy(OH_LowPowerAudioSinkCallback* callback)](#oh_lowpoweraudiosinkcallback_destroy) | Destroys an OH_LowPowerAudioSinkCallback instance.| 41| [OH_AVErrCode OH_LowPowerAudioSinkCallback_SetPositionUpdateListener(OH_LowPowerAudioSinkCallback* callback, OH_LowPowerAudioSink_OnPositionUpdated onPositionUpdated, void* userData)](#oh_lowpoweraudiosinkcallback_setpositionupdatelistener) | Sets a progress update listener for an OH_LowPowerAudioSinkCallback instance.| 42| [OH_AVErrCode OH_LowPowerAudioSinkCallback_SetDataNeededListener(OH_LowPowerAudioSinkCallback* callback, OH_LowPowerAudioSink_OnDataNeeded onDataNeeded, void* userData)](#oh_lowpoweraudiosinkcallback_setdataneededlistener) | Sets a data needed listener for an OH_LowPowerAudioSinkCallback instance.| 43| [OH_AVErrCode OH_LowPowerAudioSinkCallback_SetErrorListener(OH_LowPowerAudioSinkCallback* callback, OH_LowPowerAudioSink_OnError onError, void* userData)](#oh_lowpoweraudiosinkcallback_seterrorlistener) | Sets an error listener for an OH_LowPowerAudioSinkCallback instance.| 44| [OH_AVErrCode OH_LowPowerAudioSinkCallback_SetInterruptListener(OH_LowPowerAudioSinkCallback* callback, OH_LowPowerAudioSink_OnInterrupted onInterrupted, void* userData)](#oh_lowpoweraudiosinkcallback_setinterruptlistener) | Sets an audio focus interruption listener for an OH_LowPowerAudioSinkCallback instance.| 45| [OH_AVErrCode OH_LowPowerAudioSinkCallback_SetDeviceChangeListener(OH_LowPowerAudioSinkCallback* callback, OH_LowPowerAudioSink_OnDeviceChanged onDeviceChanged, void* userData)](#oh_lowpoweraudiosinkcallback_setdevicechangelistener) | Sets an audio device change listener for an OH_LowPowerAudioSinkCallback instance.| 46| [OH_AVErrCode OH_LowPowerAudioSinkCallback_SetEosListener(OH_LowPowerAudioSinkCallback *callback, OH_LowPowerAudioSink_OnEos onEos, void* userData)](#oh_lowpoweraudiosinkcallback_seteoslistener) | Sets an end-of-stream listener for an OH_LowPowerAudioSinkCallback instance.| 47 48## Function Description 49 50### OH_LowPowerAudioSink_CreateByMime() 51 52``` 53OH_LowPowerAudioSink* OH_LowPowerAudioSink_CreateByMime(const char* mime) 54``` 55 56**Description** 57 58Creates an OH_LowPowerAudioSink instance. 59 60**Since**: 20 61 62 63**Parameters** 64 65| Name| Description| 66| -- | -- | 67| const char* mime | Pointer to the MIME type of the audio decoder. For details about the available options, see [AVCODEC_MIME_TYPE](../apis-avcodec-kit/_codec_base.md#variables).| 68 69**Returns** 70 71| Type| Description| 72| -- | -- | 73| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* | Pointer to the OH_LowPowerAudioSink instance created. If the operation fails, nullptr is returned.| 74 75### OH_LowPowerAudioSink_Configure() 76 77``` 78OH_AVErrCode OH_LowPowerAudioSink_Configure(OH_LowPowerAudioSink* sink, const OH_AVFormat* format) 79``` 80 81**Description** 82 83Configures an OH_LowPowerAudioSink instance. This function must be called before [OH_LowPowerAudioSink_Prepare](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_prepare). 84 85**Since**: 20 86 87 88**Parameters** 89 90| Name| Description| 91| -- | -- | 92| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 93| const [OH_AVFormat](../apis-avcodec-kit/_core.md#oh_avformat)* format | Pointer to an OH_AVFormat instance, which describes the parameters to be configured for the OH_LowPowerAudioSink instance.| 94 95**Returns** 96 97| Type| Description| 98| -- | -- | 99| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_UNSUPPORT**: The format is not supported.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 100 101### OH_LowPowerAudioSink_SetParameter() 102 103``` 104OH_AVErrCode OH_LowPowerAudioSink_SetParameter(OH_LowPowerAudioSink* sink, const OH_AVFormat* format) 105``` 106 107**Description** 108 109Sets parameters for an OH_LowPowerAudioSink instance. The parameters can be dynamically set after [OH_LowPowerAudioSink_Prepare](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_prepare). 110 111**Since**: 20 112 113 114**Parameters** 115 116| Name| Description| 117| -- | -- | 118| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 119| const [OH_AVFormat](../apis-avcodec-kit/_core.md#oh_avformat)* format | Pointer to an OH_AVFormat instance, which describes the parameters configured for an OH_LowPowerAudioSink instance.| 120 121**Returns** 122 123| Type| Description| 124| -- | -- | 125| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_UNSUPPORT**: The format is not supported.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 126 127### OH_LowPowerAudioSink_GetParameter() 128 129``` 130OH_AVErrCode OH_LowPowerAudioSink_GetParameter(OH_LowPowerAudioSink* sink, OH_AVFormat* format) 131``` 132 133**Description** 134 135Obtains the parameters of an OH_LowPowerAudioSink instance. 136 137**Since**: 20 138 139 140**Parameters** 141 142| Name| Description| 143| -- | -- | 144| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 145| [OH_AVFormat](../apis-avcodec-kit/_core.md#oh_avformat)* format | Pointer to an OH_AVFormat instance.| 146 147**Returns** 148 149| Type| Description| 150| -- | -- | 151| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 152 153### OH_LowPowerAudioSink_Prepare() 154 155``` 156OH_AVErrCode OH_LowPowerAudioSink_Prepare(OH_LowPowerAudioSink* sink) 157``` 158 159**Description** 160 161Prepares an OH_LowPowerAudioSink instance for decoding and rendering. This function must be called after [OH_LowPowerAudioSink_Configure](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_configure). 162 163Before calling this function, you must call [OH_LowPowerVideoSink_SetSyncAudioSink](capi-lowpower-video-sink-h.md#oh_lowpowervideosink_setsyncaudiosink) of the LowPowerVideoSink. 164 165**Since**: 20 166 167 168**Parameters** 169 170| Name| Description| 171| -- | -- | 172| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 173 174**Returns** 175 176| Type| Description| 177| -- | -- | 178| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_UNSUPPORT**: The format is not supported.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 179 180### OH_LowPowerAudioSink_Start() 181 182``` 183OH_AVErrCode OH_LowPowerAudioSink_Start(OH_LowPowerAudioSink* sink) 184``` 185 186**Description** 187 188Starts an OH_LowPowerAudioSink instance. This function must be called after a successful call to [OH_LowPowerAudioSink_Prepare](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_prepare). 189 190After successful startup, the OH_LowPowerAudioSink instance starts reporting the [OH_LowPowerAudioSink_OnDataNeeded](capi-lowpower-audio-sink-base-h.md#oh_lowpoweraudiosink_ondataneeded) event. 191 192**Since**: 20 193 194 195**Parameters** 196 197| Name| Description| 198| -- | -- | 199| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 200 201**Returns** 202 203| Type| Description| 204| -- | -- | 205| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_UNSUPPORT**: The format is not supported.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 206 207### OH_LowPowerAudioSink_Pause() 208 209``` 210OH_AVErrCode OH_LowPowerAudioSink_Pause(OH_LowPowerAudioSink* sink) 211``` 212 213**Description** 214 215Pauses an OH_LowPowerAudioSink instance. This function must be called after [OH_LowPowerAudioSink_Start](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_start) or [OH_LowPowerAudioSink_Resume](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_resume). 216 217After successful pause, the OH_LowPowerAudioSink instance stops reporting the [OH_LowPowerAudioSink_OnDataNeeded](capi-lowpower-audio-sink-base-h.md#oh_lowpoweraudiosink_ondataneeded) event. 218 219**Since**: 20 220 221 222**Parameters** 223 224| Name| Description| 225| -- | -- | 226| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 227 228**Returns** 229 230| Type| Description| 231| -- | -- | 232| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 233 234### OH_LowPowerAudioSink_Resume() 235 236``` 237OH_AVErrCode OH_LowPowerAudioSink_Resume(OH_LowPowerAudioSink* sink) 238``` 239 240**Description** 241 242Resumes an OH_LowPowerAudioSink instance. This function must be called after [OH_LowPowerAudioSink_Pause](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_pause). 243 244After successful resumption, the OH_LowPowerAudioSink instance resumes reporting the [OH_LowPowerAudioSink_OnDataNeeded](capi-lowpower-audio-sink-base-h.md#oh_lowpoweraudiosink_ondataneeded) event. 245 246**Since**: 20 247 248 249**Parameters** 250 251| Name| Description| 252| -- | -- | 253| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 254 255**Returns** 256 257| Type| Description| 258| -- | -- | 259| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 260 261### OH_LowPowerAudioSink_Flush() 262 263``` 264OH_AVErrCode OH_LowPowerAudioSink_Flush(OH_LowPowerAudioSink* sink) 265``` 266 267**Description** 268 269Clears all input and output data from the decoders and render buffers of an OH_LowPowerAudioSink instance. 270 271You are not advised to call this function after [OH_LowPowerAudioSink_Start](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_start) or [OH_LowPowerAudioSink_Resume](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_resume). 272 273Note that if the decoder has previously received data, you must input the codec data again. 274 275**Since**: 20 276 277 278**Parameters** 279 280| Name| Description| 281| -- | -- | 282| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 283 284**Returns** 285 286| Type| Description| 287| -- | -- | 288| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 289 290### OH_LowPowerAudioSink_Stop() 291 292``` 293OH_AVErrCode OH_LowPowerAudioSink_Stop(OH_LowPowerAudioSink* sink) 294``` 295 296**Description** 297 298Stops an OH_LowPowerAudioSink instance. 299 300**Since**: 20 301 302 303**Parameters** 304 305| Name| Description| 306| -- | -- | 307| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 308 309**Returns** 310 311| Type| Description| 312| -- | -- | 313| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 314 315### OH_LowPowerAudioSink_Reset() 316 317``` 318OH_AVErrCode OH_LowPowerAudioSink_Reset(OH_LowPowerAudioSink* sink) 319``` 320 321**Description** 322 323Resets an OH_LowPowerAudioSink instance. 324 325To reuse the instance, you must call [OH_LowPowerAudioSink_Configure](capi-lowpower-audio-sink-h.md#oh_lowpoweraudiosink_configure) to configure the instance again. 326 327**Since**: 20 328 329 330**Parameters** 331 332| Name| Description| 333| -- | -- | 334| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 335 336**Returns** 337 338| Type| Description| 339| -- | -- | 340| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 341 342### OH_LowPowerAudioSink_Destroy() 343 344``` 345OH_AVErrCode OH_LowPowerAudioSink_Destroy(OH_LowPowerAudioSink* sink) 346``` 347 348**Description** 349 350Clears internal resources of an OH_LowPowerAudioSink instance and destroys the instance. You only need to call the function once. 351 352**Since**: 20 353 354 355**Parameters** 356 357| Name| Description| 358| -- | -- | 359| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 360 361**Returns** 362 363| Type| Description| 364| -- | -- | 365| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 366 367### OH_LowPowerAudioSink_SetVolume() 368 369``` 370OH_AVErrCode OH_LowPowerAudioSink_SetVolume(OH_LowPowerAudioSink* sink, const float volume) 371``` 372 373**Description** 374 375Sets the rendering volume for an OH_LowPowerAudioSink instance. 376 377**Since**: 20 378 379 380**Parameters** 381 382| Name| Description| 383| -- | -- | 384| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 385| const float volume | Rendering volume, in the range of [0.0, 1.0].| 386 387**Returns** 388 389| Type| Description| 390| -- | -- | 391| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 392 393### OH_LowPowerAudioSink_SetPlaybackSpeed() 394 395``` 396OH_AVErrCode OH_LowPowerAudioSink_SetPlaybackSpeed(OH_LowPowerAudioSink* sink, const float speed) 397``` 398 399**Description** 400 401Sets the audio rendering speed for an OH_LowPowerAudioSink instance. 402 403**Since**: 20 404 405 406**Parameters** 407 408| Name| Description| 409| -- | -- | 410| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 411| const float speed | Audio rendering speed, in the range [0.25, 4.0].| 412 413**Returns** 414 415| Type| Description| 416| -- | -- | 417| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 418 419### OH_LowPowerAudioSink_ReturnSamples() 420 421``` 422OH_AVErrCode OH_LowPowerAudioSink_ReturnSamples(OH_LowPowerAudioSink* sink, OH_AVSamplesBuffer* samples) 423``` 424 425**Description** 426 427Provides a buffer to an OH_LowPowerAudioSink instance for procesing. 428 429**Since**: 20 430 431 432**Parameters** 433 434| Name| Description| 435| -- | -- | 436| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 437| [OH_AVSamplesBuffer](capi-avsinkbase-oh-avsamplesbuffer.md)* samples | Pointer to the OH_AVSamplesBuffer instance to be provided. Batch input of samples is supported.| 438 439**Returns** 440 441| Type| Description| 442| -- | -- | 443| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 444 445### OH_LowPowerAudioSink_RegisterCallback() 446 447``` 448OH_AVErrCode OH_LowPowerAudioSink_RegisterCallback(OH_LowPowerAudioSink* sink, OH_LowPowerAudioSinkCallback* callback) 449``` 450 451**Description** 452 453Registers a callback for an OH_LowPowerAudioSink instance. 454 455**Since**: 20 456 457 458**Parameters** 459 460| Name| Description| 461| -- | -- | 462| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* sink | Pointer to an OH_LowPowerAudioSink instance.| 463| [OH_LowPowerAudioSinkCallback](capi-lowpoweraudiosink-oh-lowpoweraudiosinkcallback.md)* callback | Pointer to an OH_LowPowerAudioSinkCallback instance.| 464 465**Returns** 466 467| Type| Description| 468| -- | -- | 469| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_SERVICE_DIED**: The media server is destroyed.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 470 471### OH_LowPowerAudioSinkCallback_Create() 472 473``` 474OH_LowPowerAudioSinkCallback* OH_LowPowerAudioSinkCallback_Create(void) 475``` 476 477**Description** 478 479Creates an OH_LowPowerAudioSinkCallback instance. 480 481**Since**: 20 482 483**Returns** 484 485| Type| Description| 486| -- | -- | 487| [OH_LowPowerAudioSinkCallback](capi-lowpoweraudiosink-oh-lowpoweraudiosinkcallback.md)* | Pointer to the OH_LowPowerAudioSinkCallback instance created. If the memory is insufficient, nullptr is returned.| 488 489### OH_LowPowerAudioSinkCallback_Destroy() 490 491``` 492OH_AVErrCode OH_LowPowerAudioSinkCallback_Destroy(OH_LowPowerAudioSinkCallback* callback) 493``` 494 495**Description** 496 497Destroys an OH_LowPowerAudioSinkCallback instance. 498 499**Since**: 20 500 501 502**Parameters** 503 504| Name| Description| 505| -- | -- | 506| [OH_LowPowerAudioSinkCallback](capi-lowpoweraudiosink-oh-lowpoweraudiosinkcallback.md)* callback | Pointer to an OH_LowPowerAudioSinkCallback instance.| 507 508**Returns** 509 510| Type| Description| 511| -- | -- | 512| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.| 513 514### OH_LowPowerAudioSinkCallback_SetPositionUpdateListener() 515 516``` 517OH_AVErrCode OH_LowPowerAudioSinkCallback_SetPositionUpdateListener(OH_LowPowerAudioSinkCallback* callback,OH_LowPowerAudioSink_OnPositionUpdated onPositionUpdated,void* userData) 518``` 519 520**Description** 521 522Sets a progress update listener for an OH_LowPowerAudioSinkCallback instance. 523 524**Since**: 20 525 526 527**Parameters** 528 529| Name| Description| 530| -- | -- | 531| [OH_LowPowerAudioSinkCallback](capi-lowpoweraudiosink-oh-lowpoweraudiosinkcallback.md)* callback | Pointer to an OH_LowPowerAudioSinkCallback instance.| 532| [OH_LowPowerAudioSink_OnPositionUpdated](capi-lowpower-audio-sink-base-h.md#oh_lowpoweraudiosink_onpositionupdated) onPositionUpdated | OH_LowPowerAudioSink_OnPositionUpdated, which is invoked when the playback position is updated in the OH_LowPowerAudioSink instance.| 533| void* userData | Pointer to the data on which the caller depends when executing the callback.| 534 535**Returns** 536 537| Type| Description| 538| -- | -- | 539| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 540 541### OH_LowPowerAudioSinkCallback_SetDataNeededListener() 542 543``` 544OH_AVErrCode OH_LowPowerAudioSinkCallback_SetDataNeededListener(OH_LowPowerAudioSinkCallback* callback,OH_LowPowerAudioSink_OnDataNeeded onDataNeeded,void* userData) 545``` 546 547**Description** 548 549Sets a data needed listener for an OH_LowPowerAudioSinkCallback instance. 550 551**Since**: 20 552 553 554**Parameters** 555 556| Name| Description| 557| -- | -- | 558| [OH_LowPowerAudioSinkCallback](capi-lowpoweraudiosink-oh-lowpoweraudiosinkcallback.md)* callback | Pointer to an OH_LowPowerAudioSinkCallback instance.| 559| [OH_LowPowerAudioSink_OnDataNeeded](capi-lowpower-audio-sink-base-h.md#oh_lowpoweraudiosink_ondataneeded) onDataNeeded | OH_LowPowerAudioSink_OnDataNeeded, which is invoked when the OH_LowPowerAudioSink instance needs more data.| 560| void* userData | Pointer to the data on which the caller depends when executing the callback.| 561 562**Returns** 563 564| Type| Description| 565| -- | -- | 566| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 567 568### OH_LowPowerAudioSinkCallback_SetErrorListener() 569 570``` 571OH_AVErrCode OH_LowPowerAudioSinkCallback_SetErrorListener(OH_LowPowerAudioSinkCallback* callback,OH_LowPowerAudioSink_OnError onError,void* userData) 572``` 573 574**Description** 575 576Sets an error listener for an OH_LowPowerAudioSinkCallback instance. 577 578**Since**: 20 579 580 581**Parameters** 582 583| Name| Description| 584| -- | -- | 585| [OH_LowPowerAudioSinkCallback](capi-lowpoweraudiosink-oh-lowpoweraudiosinkcallback.md)* callback | Pointer to an OH_LowPowerAudioSinkCallback instance.| 586| [OH_LowPowerAudioSink_OnError](capi-lowpower-audio-sink-base-h.md#oh_lowpoweraudiosink_onerror) onError | OH_LowPowerAudioSink_OnError, which is invoked when an error occurs in the OH_LowPowerAudioSink instance.| 587| void* userData | Pointer to the data on which the caller depends when executing the callback.| 588 589**Returns** 590 591| Type| Description| 592| -- | -- | 593| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 594 595### OH_LowPowerAudioSinkCallback_SetInterruptListener() 596 597``` 598OH_AVErrCode OH_LowPowerAudioSinkCallback_SetInterruptListener(OH_LowPowerAudioSinkCallback* callback,OH_LowPowerAudioSink_OnInterrupted onInterrupted,void* userData) 599``` 600 601**Description** 602 603Sets an audio focus interruption listener for an OH_LowPowerAudioSinkCallback instance. 604 605**Since**: 20 606 607 608**Parameters** 609 610| Name| Description| 611| -- | -- | 612| [OH_LowPowerAudioSinkCallback](capi-lowpoweraudiosink-oh-lowpoweraudiosinkcallback.md)* callback | Pointer to an OH_LowPowerAudioSinkCallback instance.| 613| [OH_LowPowerAudioSink_OnInterrupted](capi-lowpower-audio-sink-base-h.md#oh_lowpoweraudiosink_oninterrupted) onInterrupted | OH_LowPowerAudioSink_OnInterrupted, which is invoked when the audio focus is interrupted in the OH_LowPowerAudioSink instance.| 614| void* userData | Pointer to the data on which the caller depends when executing the callback.| 615 616**Returns** 617 618| Type| Description| 619| -- | -- | 620| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 621 622### OH_LowPowerAudioSinkCallback_SetDeviceChangeListener() 623 624``` 625OH_AVErrCode OH_LowPowerAudioSinkCallback_SetDeviceChangeListener(OH_LowPowerAudioSinkCallback* callback,OH_LowPowerAudioSink_OnDeviceChanged onDeviceChanged,void* userData) 626``` 627 628**Description** 629 630Sets an audio device change listener for an OH_LowPowerAudioSinkCallback instance. 631 632**Since**: 20 633 634 635**Parameters** 636 637| Name| Description| 638| -- | -- | 639| [OH_LowPowerAudioSinkCallback](capi-lowpoweraudiosink-oh-lowpoweraudiosinkcallback.md)* callback | Pointer to an OH_LowPowerAudioSinkCallback instance.| 640| [OH_LowPowerAudioSink_OnDeviceChanged](capi-lowpower-audio-sink-base-h.md#oh_lowpoweraudiosink_ondevicechanged) onDeviceChanged | OH_LowPowerAudioSink_OnDeviceChanged, which is invoked when the audio device changes in the OH_LowPowerAudioSink instance.| 641| void* userData | Pointer to the data on which the caller depends when executing the callback.| 642 643**Returns** 644 645| Type| Description| 646| -- | -- | 647| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 648 649### OH_LowPowerAudioSinkCallback_SetEosListener() 650 651``` 652OH_AVErrCode OH_LowPowerAudioSinkCallback_SetEosListener(OH_LowPowerAudioSinkCallback *callback,OH_LowPowerAudioSink_OnEos onEos,void* userData) 653``` 654 655**Description** 656 657Sets an end-of-stream listener for an OH_LowPowerAudioSinkCallback instance. 658 659**Since**: 20 660 661 662**Parameters** 663 664| Name| Description| 665| -- | -- | 666| [OH_LowPowerAudioSinkCallback](capi-lowpoweraudiosink-oh-lowpoweraudiosinkcallback.md) *callback | Pointer to an OH_LowPowerAudioSinkCallback instance.| 667| [OH_LowPowerAudioSink_OnEos](capi-lowpower-audio-sink-base-h.md#oh_lowpoweraudiosink_oneos) onEos | OH_LowPowerAudioSink_OnEos, which is invoked when playback is complete in the OH_LowPowerAudioSink instance.| 668| void* userData | Pointer to the data on which the caller depends when executing the callback.| 669 670**Returns** 671 672| Type| Description| 673| -- | -- | 674| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | **AV_ERR_OK**: The operation is successful.<br>**AV_ERR_INVALID_VAL**: An input parameter is nullptr or invalid.<br>**AV_ERR_OPERATE_NOT_PERMIT**: The operation is not supported.| 675