diff --git a/services/services/screen_capture/server/screen_capture_server.cpp b/services/services/screen_capture/server/screen_capture_server.cpp index 4b85649199f75f0f6ead50e1dbbedc3f10cdd079..3045a01dbd0bb2d0f6ee6396e4800c48993d65f7 100644 --- a/services/services/screen_capture/server/screen_capture_server.cpp +++ b/services/services/screen_capture/server/screen_capture_server.cpp @@ -1426,7 +1426,7 @@ int32_t ScreenCaptureServer::StopVideoCapture() { MediaTrace trace("ScreenCaptureServer::StopVideoCapture"); MEDIA_LOGI("StopVideoCapture"); - if ((screenId_ < 0) || (consumer_ == nullptr) || !isConsumerStart_) { + if ((screenId_ < 0) || ((consumer_ == nullptr) && !isSurfaceMode_) || !isConsumerStart_) { MEDIA_LOGI("StopVideoCapture IGNORED, video capture not start"); surfaceCb_ = nullptr; return MSERR_OK;