diff --git a/services/services/screen_capture/server/screen_capture_server.cpp b/services/services/screen_capture/server/screen_capture_server.cpp index 42bc73c47c212e96f35e52344b21a68c31e8c308..1fa30b316efba4006108f914d8b4d49c9112426d 100644 --- a/services/services/screen_capture/server/screen_capture_server.cpp +++ b/services/services/screen_capture/server/screen_capture_server.cpp @@ -1456,10 +1456,12 @@ int32_t ScreenCaptureServer::MakeVirtualScreenMirror() "MakeVirtualScreenMirror failed to GetAllScreens, ret:%{public}d", ret); std::vector mirrorIds; mirrorIds.push_back(screenId_); - ScreenId mirrorGroup = static_cast(1); + sptr defaultDisplay = Rosen::DisplayManager::GetInstance().GetDefaultDisplaySync(); + ScreenId mirrorGroup = defaultDisplay->GetScreenId(); if (captureConfig_.captureMode != CAPTURE_SPECIFIED_SCREEN) { - ret = ScreenManager::GetInstance().MakeMirror(screens[0]->GetId(), mirrorIds, mirrorGroup); + MEDIA_LOGI("MakeVirtualScreenMirror DefaultDisplay, screenId:%{public}" PRIu64, defaultDisplay->GetScreenId()); + ret = ScreenManager::GetInstance().MakeMirror(defaultDisplay->GetScreenId(), mirrorIds, mirrorGroup); CHECK_AND_RETURN_RET_LOG(ret == DMError::DM_OK, MSERR_UNKNOWN, "MakeVirtualScreenMirror failed to MakeMirror, captureMode:%{public}d, ret:%{public}d", captureConfig_.captureMode, ret);