From e5817f5578ba045fa08f6572bbc7b9f5bac34ae1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=AD=99=E6=98=A5=E9=98=B3?= Date: Sat, 17 Jan 2026 12:09:54 +0800 Subject: [PATCH] =?utf8?q?=E9=81=BF=E5=85=8D=E6=9A=82=E5=81=9C=E6=97=B6vid?= =?utf8?q?eo=E7=94=B3=E8=AF=B7buffer=EF=BC=8C=E9=80=A0=E6=88=90=E9=BB=91?= =?utf8?q?=E8=84=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../frameworks/player_control/player/liteplayer.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/code/sdk/middleware/services/media/foundation/player/frameworks/player_control/player/liteplayer.cpp b/code/sdk/middleware/services/media/foundation/player/frameworks/player_control/player/liteplayer.cpp index a914912e7..e0dcdba72 100644 --- a/code/sdk/middleware/services/media/foundation/player/frameworks/player_control/player/liteplayer.cpp +++ b/code/sdk/middleware/services/media/foundation/player/frameworks/player_control/player/liteplayer.cpp @@ -1316,6 +1316,12 @@ int32_t PlayerControl::QueueOutputBufferToVideoDecoder(void) CHECK_NULL_RETURN(sinkManager_, HI_FAILURE, "sink manager is null"); CHECK_NULL_RETURN(videoDecoder_, HI_FAILURE, "video decoder is null"); + // 0. 如果播放器已暂停,跳过请求缓冲区,避免屏幕关闭时连续失败 + if (paused_) { + MEDIA_DEBUG_LOG("player is paused, skip requesting surface buffer"); + return HI_SUCCESS; + } + // 1. if video sink have cache, means have remain buffer not send to surface, don't need request buffer from surface bool haveCache = sinkManager_->HaveCacheFrame(false); if (haveCache) { @@ -1330,6 +1336,11 @@ int32_t PlayerControl::QueueOutputBufferToVideoDecoder(void) surfaceBuf_ = LvRequestBuffer(reinterpret_cast(surface_), 0); #endif if (surfaceBuf_ == nullptr) { + // 如果播放器已暂停,不增加失败计数,直接返回成功 + if (paused_) { + MEDIA_DEBUG_LOG("surface buffer request failed but player is paused, skip error count"); + return HI_SUCCESS; + } if (continousRequestSurfaceBufferFailCount_ == MAX_CONTINOUS_REQUEST_SURFACE_BUFFER_FAIL_COUNT) { PalayControlEventItem item = { EVNET_VIDEO_RUNNING_ERR }; eventQueue_.push_back(item); -- 2.17.1