1# lowpower_video_sink.h 2 3## 概述 4 5定义LowPowerVideoSink接口。使用LowPowerVideoSink提供的Native API进行视频通路的低功耗播放。 6 7**引用文件:** <multimedia/player_framework/lowpower_video_sink.h> 8 9**库:** liblowpower_avsink.so 10 11**系统能力:** SystemCapability.Multimedia.Media.LowPowerAVSink 12 13**起始版本:** 20 14 15**相关模块:** [LowPowerVideoSink](capi-lowpowervideosink.md) 16 17## 汇总 18 19### 函数 20 21| 名称 | 描述 | 22| -- | -- | 23| [OH_LowPowerVideoSink* OH_LowPowerVideoSink_CreateByMime(const char* mime)](#oh_lowpowervideosink_createbymime) | 创建低功耗LowPowerVideoSink。 | 24| [OH_AVErrCode OH_LowPowerVideoSink_Configure(OH_LowPowerVideoSink* sink, const OH_AVFormat* format)](#oh_lowpowervideosink_configure) | 配置LowPowerVideoSink,需要在[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)前完成。 | 25| [OH_AVErrCode OH_LowPowerVideoSink_SetParameter(OH_LowPowerVideoSink* sink, const OH_AVFormat* format)](#oh_lowpowervideosink_setparameter) | 为LowPowerVideoSink设置参数,支持[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)后动态设置。 | 26| [OH_AVErrCode OH_LowPowerVideoSink_GetParameter(OH_LowPowerVideoSink* sink, OH_AVFormat* format)](#oh_lowpowervideosink_getparameter) | 获取LowPowerVideoSink的相关参数。 | 27| [OH_AVErrCode OH_LowPowerVideoSink_SetVideoSurface(OH_LowPowerVideoSink* sink, const OHNativeWindow* surface)](#oh_lowpowervideosink_setvideosurface) | 为LowPowerVideoSink设置渲染画面窗口。 需要在[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)前完成。 | 28| [OH_AVErrCode OH_LowPowerVideoSink_Prepare(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_prepare) | 开始LowPowerVideoSink准备,需要在[OH_LowPowerVideoSink_SetSyncAudioSink](#oh_lowpowervideosink_setsyncaudiosink)之后调用。 | 29| [OH_AVErrCode OH_LowPowerVideoSink_StartDecoder(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_startdecoder) | 开始LowPowerVideoSink解码,在[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)后或非播放中[OH_LowPowerVideoSink_SetTargetStartFrame](#oh_lowpowervideosink_settargetstartframe)后调用。<br> 启动成功后,LowPowerVideoSink将开始上报[OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded)事件。 | 30| [OH_AVErrCode OH_LowPowerVideoSink_RenderFirstFrame(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_renderfirstframe) | 渲染LowPowerVideoSink解码出的第一帧,在[OH_LowPowerVideoSink_StartDecoder](#oh_lowpowervideosink_startdecoder)之后调用。 | 31| [OH_AVErrCode OH_LowPowerVideoSink_StartRenderer(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_startrenderer) | 开始LowPowerVideoSink渲染,在[OH_LowPowerVideoSink_StartDecoder](#oh_lowpowervideosink_startdecoder)之后调用。 | 32| [OH_AVErrCode OH_LowPowerVideoSink_Pause(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_pause) | 暂停LowPowerVideoSink,在[OH_LowPowerVideoSink_StartRenderer](#oh_lowpowervideosink_startrenderer)或[OH_LowPowerVideoSink_Resume](#oh_lowpowervideosink_resume)后调用。<br> 暂停成功后,LowPowerVideoSink将暂停[OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded)事件的上报。 | 33| [OH_AVErrCode OH_LowPowerVideoSink_Resume(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_resume) | 恢复LowPowerVideoSink,在[OH_LowPowerVideoSink_Pause](#oh_lowpowervideosink_pause)后调用。<br> 恢复成功后,LowPowerVideoSink将恢复[OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded)事件的上报。 | 34| [OH_AVErrCode OH_LowPowerVideoSink_Flush(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_flush) | 清除LowPowerVideoSink中所有解码器和渲染缓存的输入输出数据。<br> 此接口不建议在[OH_LowPowerVideoSink_StartRenderer](#oh_lowpowervideosink_startrenderer)或[OH_LowPowerVideoSink_Resume](#oh_lowpowervideosink_resume)之后调用。<br> 需要注意的是,如果编解码器之前已输入数据,则需要重新输入编解码器数据。 | 35| [OH_AVErrCode OH_LowPowerVideoSink_Stop(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_stop) | 停止LowPowerVideoSink。 | 36| [OH_AVErrCode OH_LowPowerVideoSink_Reset(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_reset) | 重置LowPowerVideoSink。<br> 如果要重新使用该实例,需要调用[OH_LowPowerVideoSink_Configure](#oh_lowpowervideosink_configure)完成配置。 | 37| [OH_AVErrCode OH_LowPowerVideoSink_Destroy(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_destroy) | 清理解码器内部资源,销毁LowPowerVideoSink实例。不能重复销毁。 | 38| [OH_AVErrCode OH_LowPowerVideoSink_SetSyncAudioSink(OH_LowPowerVideoSink* videoSink, OH_LowPowerAudioSink* audioSink)](#oh_lowpowervideosink_setsyncaudiosink) | LowPowerVideoSink设置用于音画同步的AudioStreamer。 | 39| [OH_AVErrCode OH_LowPowerVideoSink_SetTargetStartFrame(OH_LowPowerVideoSink* sink, const int64_t framePts, OH_LowPowerVideoSink_OnTargetArrived onTargetArrived, const int64_t timeoutMs,void* userData)](#oh_lowpowervideosink_settargetstartframe) | 为LowPowerVideoSink设置目标渲染帧。 | 40| [OH_AVErrCode OH_LowPowerVideoSink_SetPlaybackSpeed(OH_LowPowerVideoSink* sink, const float speed)](#oh_lowpowervideosink_setplaybackspeed) | 为LowPowerVideoSink设置播放倍速。 | 41| [OH_AVErrCode OH_LowPowerVideoSink_ReturnSamples(OH_LowPowerVideoSink* sink, OH_AVSamplesBuffer* samples)](#oh_lowpowervideosink_returnsamples) | 给LowPowerVideoSink输入buffer。 | 42| [OH_AVErrCode OH_LowPowerVideoSink_RegisterCallback(OH_LowPowerVideoSink* sink, OH_LowPowerVideoSinkCallback* callback)](#oh_lowpowervideosink_registercallback) | 为LowPowerVideoSink注册回调。 | 43| [OH_LowPowerVideoSinkCallback* OH_LowPowerVideoSinkCallback_Create(void)](#oh_lowpowervideosinkcallback_create) | 创建OH_LowPowerVideoSinkCallback。 | 44| [OH_AVErrCode OH_LowPowerVideoSinkCallback_Destroy(OH_LowPowerVideoSinkCallback* callback)](#oh_lowpowervideosinkcallback_destroy) | 销毁OH_LowPowerVideoSinkCallback对象。 | 45| [OH_AVErrCode OH_LowPowerVideoSinkCallback_SetDataNeededListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnDataNeeded onDataNeeded, void* userData)](#oh_lowpowervideosinkcallback_setdataneededlistener) | 为LowPowerVideoSinkCallback设置需要数据监听。 | 46| [OH_AVErrCode OH_LowPowerVideoSinkCallback_SetErrorListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnError onError, void* userData)](#oh_lowpowervideosinkcallback_seterrorlistener) | 为LowPowerVideoSinkCallback回调设置错误监听。 | 47| [OH_AVErrCode OH_LowPowerVideoSinkCallback_SetRenderStartListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnRenderStarted onRenderStarted, void* userData)](#oh_lowpowervideosinkcallback_setrenderstartlistener) | 为LowPowerVideoSinkCallback回调设置开始渲染监听。 | 48| [OH_AVErrCode OH_LowPowerVideoSinkCallback_SetStreamChangedListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnStreamChanged onStreamChanged, void* userData)](#oh_lowpowervideosinkcallback_setstreamchangedlistener) | 为LowPowerVideoSinkCallback回调设置流切换监听。 | 49| [OH_AVErrCode OH_LowPowerVideoSinkCallback_SetFirstFrameDecodedListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnFirstFrameDecoded onFirstFrameDecoded, void* userData)](#oh_lowpowervideosinkcallback_setfirstframedecodedlistener) | 为LowPowerVideoSinkCallback回调设置首帧准备完成监听。 | 50| [OH_AVErrCode OH_LowPowerVideoSinkCallback_SetEosListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnEos onEos, void* userData)](#oh_lowpowervideosinkcallback_seteoslistener) | 为LowPowerVideoSinkCallback回调设置播放结束监听。 | 51 52## 函数说明 53 54### OH_LowPowerVideoSink_CreateByMime() 55 56``` 57OH_LowPowerVideoSink* OH_LowPowerVideoSink_CreateByMime(const char* mime) 58``` 59 60**描述** 61 62创建低功耗LowPowerVideoSink。 63 64**起始版本:** 20 65 66 67**参数:** 68 69| 参数项 | 描述 | 70| -- | -- | 71| const char* mime | 视频解码器的MIME类型,取值范围请参考[AVCODEC_MIME_TYPE](../apis-avcodec-kit/_codec_base.md#变量)。 | 72 73**返回:** 74 75| 类型 | 说明 | 76| -- | -- | 77| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* | 如果创建成功返回指向OH_LowPowerVideoSink实例的指针,否则返回空指针。 | 78 79### OH_LowPowerVideoSink_Configure() 80 81``` 82OH_AVErrCode OH_LowPowerVideoSink_Configure(OH_LowPowerVideoSink* sink, const OH_AVFormat* format) 83``` 84 85**描述** 86 87配置LowPowerVideoSink,需要在[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)前完成。 88 89**起始版本:** 20 90 91 92**参数:** 93 94| 参数项 | 描述 | 95| -- | -- | 96| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 97| const [OH_AVFormat](../apis-avcodec-kit/_core.md#oh_avformat)* format | 指向OH_AVFormat的指针,用于配置LowPowerVideoSink的参数。 | 98 99**返回:** 100 101| 类型 | 说明 | 102| -- | -- | 103| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_UNSUPPORT:不支持的格式。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 104 105### OH_LowPowerVideoSink_SetParameter() 106 107``` 108OH_AVErrCode OH_LowPowerVideoSink_SetParameter(OH_LowPowerVideoSink* sink, const OH_AVFormat* format) 109``` 110 111**描述** 112 113为LowPowerVideoSink设置参数,支持[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)后动态设置。 114 115**起始版本:** 20 116 117 118**参数:** 119 120| 参数项 | 描述 | 121| -- | -- | 122| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 123| const [OH_AVFormat](../apis-avcodec-kit/_core.md#oh_avformat)* format | 指向OH_AVFormat的指针,用于配置LowPowerVideoSink的参数。 | 124 125**返回:** 126 127| 类型 | 说明 | 128| -- | -- | 129| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_UNSUPPORT:不支持的格式。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 130 131### OH_LowPowerVideoSink_GetParameter() 132 133``` 134OH_AVErrCode OH_LowPowerVideoSink_GetParameter(OH_LowPowerVideoSink* sink, OH_AVFormat* format) 135``` 136 137**描述** 138 139获取LowPowerVideoSink的相关参数。 140 141**起始版本:** 20 142 143 144**参数:** 145 146| 参数项 | 描述 | 147| -- | -- | 148| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 149| [OH_AVFormat](../apis-avcodec-kit/_core.md#oh_avformat)* format | 指向OH_AVFormat的指针,为LowPowerVideoSink设置的参数。 | 150 151**返回:** 152 153| 类型 | 说明 | 154| -- | -- | 155| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 156 157### OH_LowPowerVideoSink_SetVideoSurface() 158 159``` 160OH_AVErrCode OH_LowPowerVideoSink_SetVideoSurface(OH_LowPowerVideoSink* sink, const OHNativeWindow* surface) 161``` 162 163**描述** 164 165为LowPowerVideoSink设置渲染画面窗口。 需要在[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)前完成。 166 167**起始版本:** 20 168 169 170**参数:** 171 172| 参数项 | 描述 | 173| -- | -- | 174| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 175| const [OHNativeWindow](../apis-avcodec-kit/_codec_base.md#ohnativewindow)* surface | 指向OHNativeWindow实例的指针。 | 176 177**返回:** 178 179| 类型 | 说明 | 180| -- | -- | 181| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 182 183### OH_LowPowerVideoSink_Prepare() 184 185``` 186OH_AVErrCode OH_LowPowerVideoSink_Prepare(OH_LowPowerVideoSink* sink) 187``` 188 189**描述** 190 191开始LowPowerVideoSink准备,需要在[OH_LowPowerVideoSink_SetSyncAudioSink](#oh_lowpowervideosink_setsyncaudiosink)之后调用。 192 193**起始版本:** 20 194 195 196**参数:** 197 198| 参数项 | 描述 | 199| -- | -- | 200| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 201 202**返回:** 203 204| 类型 | 说明 | 205| -- | -- | 206| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_UNSUPPORT:不支持的格式。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 207 208### OH_LowPowerVideoSink_StartDecoder() 209 210``` 211OH_AVErrCode OH_LowPowerVideoSink_StartDecoder(OH_LowPowerVideoSink* sink) 212``` 213 214**描述** 215 216开始LowPowerVideoSink解码,在[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)后或非播放中[OH_LowPowerVideoSink_SetTargetStartFrame](#oh_lowpowervideosink_settargetstartframe)后调用。<br> 启动成功后,LowPowerVideoSink将开始上报[OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded)事件。 217 218**起始版本:** 20 219 220 221**参数:** 222 223| 参数项 | 描述 | 224| -- | -- | 225| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 226 227**返回:** 228 229| 类型 | 说明 | 230| -- | -- | 231| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_UNSUPPORT:不支持的格式。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 232 233### OH_LowPowerVideoSink_RenderFirstFrame() 234 235``` 236OH_AVErrCode OH_LowPowerVideoSink_RenderFirstFrame(OH_LowPowerVideoSink* sink) 237``` 238 239**描述** 240 241渲染LowPowerVideoSink解码出的第一帧,在[OH_LowPowerVideoSink_StartDecoder](#oh_lowpowervideosink_startdecoder)之后调用。 242 243**起始版本:** 20 244 245 246**参数:** 247 248| 参数项 | 描述 | 249| -- | -- | 250| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 251 252**返回:** 253 254| 类型 | 说明 | 255| -- | -- | 256| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 257 258### OH_LowPowerVideoSink_StartRenderer() 259 260``` 261OH_AVErrCode OH_LowPowerVideoSink_StartRenderer(OH_LowPowerVideoSink* sink) 262``` 263 264**描述** 265 266开始LowPowerVideoSink渲染,在[OH_LowPowerVideoSink_StartDecoder](#oh_lowpowervideosink_startdecoder)之后调用。 267 268**起始版本:** 20 269 270 271**参数:** 272 273| 参数项 | 描述 | 274| -- | -- | 275| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 276 277**返回:** 278 279| 类型 | 说明 | 280| -- | -- | 281| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_UNSUPPORT:不支持的格式。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 282 283### OH_LowPowerVideoSink_Pause() 284 285``` 286OH_AVErrCode OH_LowPowerVideoSink_Pause(OH_LowPowerVideoSink* sink) 287``` 288 289**描述** 290 291暂停LowPowerVideoSink,在[OH_LowPowerVideoSink_StartRenderer](#oh_lowpowervideosink_startrenderer)或[OH_LowPowerVideoSink_Resume](#oh_lowpowervideosink_resume)后调用。<br> 暂停成功后,LowPowerVideoSink将暂停[OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded)事件的上报。 292 293**起始版本:** 20 294 295 296**参数:** 297 298| 参数项 | 描述 | 299| -- | -- | 300| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 301 302**返回:** 303 304| 类型 | 说明 | 305| -- | -- | 306| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 307 308### OH_LowPowerVideoSink_Resume() 309 310``` 311OH_AVErrCode OH_LowPowerVideoSink_Resume(OH_LowPowerVideoSink* sink) 312``` 313 314**描述** 315 316恢复LowPowerVideoSink,在[OH_LowPowerVideoSink_Pause](#oh_lowpowervideosink_pause)后调用。<br> 恢复成功后,LowPowerVideoSink将恢复[OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded)事件的上报。 317 318**起始版本:** 20 319 320 321**参数:** 322 323| 参数项 | 描述 | 324| -- | -- | 325| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 326 327**返回:** 328 329| 类型 | 说明 | 330| -- | -- | 331| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 332 333### OH_LowPowerVideoSink_Flush() 334 335``` 336OH_AVErrCode OH_LowPowerVideoSink_Flush(OH_LowPowerVideoSink* sink) 337``` 338 339**描述** 340 341清除LowPowerVideoSink中所有解码器和渲染缓存的输入输出数据。<br> 此接口不建议在[OH_LowPowerVideoSink_StartRenderer](#oh_lowpowervideosink_startrenderer)或[OH_LowPowerVideoSink_Resume](#oh_lowpowervideosink_resume)之后调用。<br> 需要注意的是,如果编解码器之前已输入数据,则需要重新输入编解码器数据。 342 343**起始版本:** 20 344 345 346**参数:** 347 348| 参数项 | 描述 | 349| -- | -- | 350| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 351 352**返回:** 353 354| 类型 | 说明 | 355| -- | -- | 356| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 357 358### OH_LowPowerVideoSink_Stop() 359 360``` 361OH_AVErrCode OH_LowPowerVideoSink_Stop(OH_LowPowerVideoSink* sink) 362``` 363 364**描述** 365 366停止LowPowerVideoSink。 367 368**起始版本:** 20 369 370 371**参数:** 372 373| 参数项 | 描述 | 374| -- | -- | 375| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 376 377**返回:** 378 379| 类型 | 说明 | 380| -- | -- | 381| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 382 383### OH_LowPowerVideoSink_Reset() 384 385``` 386OH_AVErrCode OH_LowPowerVideoSink_Reset(OH_LowPowerVideoSink* sink) 387``` 388 389**描述** 390 391重置LowPowerVideoSink。<br> 如果要重新使用该实例,需要调用[OH_LowPowerVideoSink_Configure](#oh_lowpowervideosink_configure)完成配置。 392 393**起始版本:** 20 394 395 396**参数:** 397 398| 参数项 | 描述 | 399| -- | -- | 400| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 401 402**返回:** 403 404| 类型 | 说明 | 405| -- | -- | 406| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 407 408### OH_LowPowerVideoSink_Destroy() 409 410``` 411OH_AVErrCode OH_LowPowerVideoSink_Destroy(OH_LowPowerVideoSink* sink) 412``` 413 414**描述** 415 416清理解码器内部资源,销毁LowPowerVideoSink实例。不能重复销毁。 417 418**起始版本:** 20 419 420 421**参数:** 422 423| 参数项 | 描述 | 424| -- | -- | 425| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 426 427**返回:** 428 429| 类型 | 说明 | 430| -- | -- | 431| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 432 433### OH_LowPowerVideoSink_SetSyncAudioSink() 434 435``` 436OH_AVErrCode OH_LowPowerVideoSink_SetSyncAudioSink(OH_LowPowerVideoSink* videoSink, OH_LowPowerAudioSink* audioSink) 437``` 438 439**描述** 440 441LowPowerVideoSink设置用于音画同步的OH_LowPowerAudioSink。 442 443**起始版本:** 20 444 445 446**参数:** 447 448| 参数项 | 描述 | 449| -- | -- | 450| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* videoSink | 指向OH_LowPowerVideoSink实例的指针。 | 451| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* audioSink | 指向OH_LowPowerAudioSink实例的指针。 | 452 453**返回:** 454 455| 类型 | 说明 | 456| -- | -- | 457| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 458 459### OH_LowPowerVideoSink_SetTargetStartFrame() 460 461``` 462OH_AVErrCode OH_LowPowerVideoSink_SetTargetStartFrame(OH_LowPowerVideoSink* sink,const int64_t framePts,OH_LowPowerVideoSink_OnTargetArrived onTargetArrived,const int64_t timeoutMs,void* userData) 463``` 464 465**描述** 466 467为LowPowerVideoSink设置目标渲染帧。 468 469**起始版本:** 20 470 471 472**参数:** 473 474| 参数项 | 描述 | 475| -- | -- | 476| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 477| const int64_t framePts | 渲染的目标视频帧的pts。 | 478| [OH_LowPowerVideoSink_OnTargetArrived](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ontargetarrived) onTargetArrived | OH_LowPowerVideoSink_OnTargetArrived方法,当目标帧渲染时触发该方法。 | 479| const int64_t timeoutMs | 如果等待第一帧的时间超过timeoutMs,则直接调用onTargetArrived。 | 480| void* userData | 用户数据。 | 481 482**返回:** 483 484| 类型 | 说明 | 485| -- | -- | 486| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 487 488### OH_LowPowerVideoSink_SetPlaybackSpeed() 489 490``` 491OH_AVErrCode OH_LowPowerVideoSink_SetPlaybackSpeed(OH_LowPowerVideoSink* sink, const float speed) 492``` 493 494**描述** 495 496为LowPowerVideoSink设置播放倍速。 497 498**起始版本:** 20 499 500 501**参数:** 502 503| 参数项 | 描述 | 504| -- | -- | 505| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 506| const float speed | 播放速率的值。当前版本有效范围为[0.1,4.0]。 | 507 508**返回:** 509 510| 类型 | 说明 | 511| -- | -- | 512| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 513 514### OH_LowPowerVideoSink_ReturnSamples() 515 516``` 517OH_AVErrCode OH_LowPowerVideoSink_ReturnSamples(OH_LowPowerVideoSink* sink, OH_AVSamplesBuffer* samples) 518``` 519 520**描述** 521 522给LowPowerVideoSink输入buffer。 523 524**起始版本:** 20 525 526 527**参数:** 528 529| 参数项 | 描述 | 530| -- | -- | 531| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 532| [OH_AVSamplesBuffer](capi-avsinkbase-oh-avsamplesbuffer.md)* samples | 需要送LowPowerVideoSink消费的OH_AVSamplesBuffer,支持聚包输入。 | 533 534**返回:** 535 536| 类型 | 说明 | 537| -- | -- | 538| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 539 540### OH_LowPowerVideoSink_RegisterCallback() 541 542``` 543OH_AVErrCode OH_LowPowerVideoSink_RegisterCallback(OH_LowPowerVideoSink* sink, OH_LowPowerVideoSinkCallback* callback) 544``` 545 546**描述** 547 548为LowPowerVideoSink注册回调。 549 550**起始版本:** 20 551 552 553**参数:** 554 555| 参数项 | 描述 | 556| -- | -- | 557| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 | 558| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 | 559 560**返回:** 561 562| 类型 | 说明 | 563| -- | -- | 564| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 565 566### OH_LowPowerVideoSinkCallback_Create() 567 568``` 569OH_LowPowerVideoSinkCallback* OH_LowPowerVideoSinkCallback_Create(void) 570``` 571 572**描述** 573 574创建OH_LowPowerVideoSinkCallback。 575 576**起始版本:** 20 577 578**返回:** 579 580| 类型 | 说明 | 581| -- | -- | 582| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* | 返回指向OH_LowPowerVideoSinkCallback实例的指针。如果内存不足,则返回nullptr。 | 583 584### OH_LowPowerVideoSinkCallback_Destroy() 585 586``` 587OH_AVErrCode OH_LowPowerVideoSinkCallback_Destroy(OH_LowPowerVideoSinkCallback* callback) 588``` 589 590**描述** 591 592销毁OH_LowPowerVideoSinkCallback对象。 593 594**起始版本:** 20 595 596 597**参数:** 598 599| 参数项 | 描述 | 600| -- | -- | 601| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 | 602 603**返回:** 604 605| 类型 | 说明 | 606| -- | -- | 607| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。 | 608 609### OH_LowPowerVideoSinkCallback_SetDataNeededListener() 610 611``` 612OH_AVErrCode OH_LowPowerVideoSinkCallback_SetDataNeededListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnDataNeeded onDataNeeded, void* userData) 613``` 614 615**描述** 616 617为LowPowerVideoSinkCallback设置需要数据监听。 618 619**起始版本:** 20 620 621 622**参数:** 623 624| 参数项 | 描述 | 625| -- | -- | 626| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 | 627| [OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded) onDataNeeded | OH_LowPowerVideoSink_OnDataNeeded方法,在DataNeeded事件触发时调用。 | 628| void* userData | 用户执行回调所依赖的数据。 | 629 630**返回:** 631 632| 类型 | 说明 | 633| -- | -- | 634| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 635 636### OH_LowPowerVideoSinkCallback_SetErrorListener() 637 638``` 639OH_AVErrCode OH_LowPowerVideoSinkCallback_SetErrorListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnError onError, void* userData) 640``` 641 642**描述** 643 644为LowPowerVideoSinkCallback回调设置错误监听。 645 646**起始版本:** 20 647 648 649**参数:** 650 651| 参数项 | 描述 | 652| -- | -- | 653| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 | 654| [OH_LowPowerVideoSink_OnError](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_onerror) onError | OH_LowPowerVideoSink_OnError方法,在Error事件触发时调用。 | 655| void* userData | 用户执行回调所依赖的数据。 | 656 657**返回:** 658 659| 类型 | 说明 | 660| -- | -- | 661| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 662 663### OH_LowPowerVideoSinkCallback_SetRenderStartListener() 664 665``` 666OH_AVErrCode OH_LowPowerVideoSinkCallback_SetRenderStartListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnRenderStarted onRenderStarted, void* userData) 667``` 668 669**描述** 670 671为LowPowerVideoSinkCallback回调设置开始渲染监听。 672 673**起始版本:** 20 674 675 676**参数:** 677 678| 参数项 | 描述 | 679| -- | -- | 680| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 | 681| [OH_LowPowerVideoSink_OnRenderStarted](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_onrenderstarted) onRenderStarted | OH_LowPowerVideoSink_OnRenderStarted方法,在RenderStarted事件触发时调用。 | 682| void* userData | 用户执行回调所依赖的数据。 | 683 684**返回:** 685 686| 类型 | 说明 | 687| -- | -- | 688| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 689 690### OH_LowPowerVideoSinkCallback_SetStreamChangedListener() 691 692``` 693OH_AVErrCode OH_LowPowerVideoSinkCallback_SetStreamChangedListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnStreamChanged onStreamChanged, void* userData) 694``` 695 696**描述** 697 698为LowPowerVideoSinkCallback回调设置流切换监听。 699 700**起始版本:** 20 701 702 703**参数:** 704 705| 参数项 | 描述 | 706| -- | -- | 707| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 | 708| [OH_LowPowerVideoSink_OnStreamChanged](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_onstreamchanged) onStreamChanged | OH_LowPowerVideoSink_OnStreamChanged方法,在StreamChanged事件触发时调用。 | 709| void* userData | 用户执行回调所依赖的数据。 | 710 711**返回:** 712 713| 类型 | 说明 | 714| -- | -- | 715| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 716 717### OH_LowPowerVideoSinkCallback_SetFirstFrameDecodedListener() 718 719``` 720OH_AVErrCode OH_LowPowerVideoSinkCallback_SetFirstFrameDecodedListener(OH_LowPowerVideoSinkCallback* callback,OH_LowPowerVideoSink_OnFirstFrameDecoded onFirstFrameDecoded,void* userData) 721``` 722 723**描述** 724 725为LowPowerVideoSinkCallback回调设置首帧准备完成监听。 726 727**起始版本:** 20 728 729 730**参数:** 731 732| 参数项 | 描述 | 733| -- | -- | 734| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 | 735| [OH_LowPowerVideoSink_OnFirstFrameDecoded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_onfirstframedecoded) onFirstFrameDecoded | OH_LowPowerVideoSink_OnFirstFrameReady方法,在FirstFrameReady事件触发时调用。 | 736| void* userData | 用户执行回调所依赖的数据。 | 737 738**返回:** 739 740| 类型 | 说明 | 741| -- | -- | 742| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 743 744### OH_LowPowerVideoSinkCallback_SetEosListener() 745 746``` 747OH_AVErrCode OH_LowPowerVideoSinkCallback_SetEosListener(OH_LowPowerVideoSinkCallback* callback,OH_LowPowerVideoSink_OnEos onEos, void* userData) 748``` 749 750**描述** 751 752为LowPowerVideoSinkCallback回调设置播放结束监听。 753 754**起始版本:** 20 755 756 757**参数:** 758 759| 参数项 | 描述 | 760| -- | -- | 761| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 | 762| [OH_LowPowerVideoSink_OnEos](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_oneos) onEos | OH_LowPowerVideoSink_OnEos方法,在Eos事件触发时调用。 | 763| void* userData | 用户执行回调所依赖的数据。 | 764 765**返回:** 766 767| 类型 | 说明 | 768| -- | -- | 769| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 | 770 771 772