From 4ba4be427e4f09c73bd37cf1333abecc12c3f042 Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 13 Mar 2025 10:13:34 +0800 Subject: [PATCH] =?UTF-8?q?=E8=88=AA=E7=85=9C=E7=BD=91=E7=BB=9C=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/PhoneDevice.cpp | 8 +++++++- app/src/main/cpp/netcamera/HangYuCtrl.cpp | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index f5de977c..ce492feb 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -1766,8 +1766,14 @@ bool CPhoneDevice::TakeVideoWithNetCamera(IDevice::PHOTO_INFO& localPhotoInfo, c return false; } - std::string streamingUrl = vendorCtrl->GetStreamingUrl(localPhotoInfo.channel); + std::string streamingUrl = vendorCtrl->GetStreamingUrl(localPhotoInfo.cameraId); + if (streamingUrl.empty()) + { + XYLOG(XYLOG_SEVERITY_ERROR, "Invalid Streaming URL CH=%u PR=%X PHOTOID=%u", (uint32_t)localPhotoInfo.channel, (unsigned int)localPhotoInfo.preset, localPhotoInfo.photoId); + TakePhotoCb(0, localPhotoInfo, "", 0); + return false; + } // strcpy(netPhotoInfo.outputPath, path.c_str()); // strcpy(netPhotoInfo.interface, "eth0"); diff --git a/app/src/main/cpp/netcamera/HangYuCtrl.cpp b/app/src/main/cpp/netcamera/HangYuCtrl.cpp index e91467ca..66200efd 100644 --- a/app/src/main/cpp/netcamera/HangYuCtrl.cpp +++ b/app/src/main/cpp/netcamera/HangYuCtrl.cpp @@ -28,9 +28,10 @@ std::string HangYuCtrl::GetStreamingUrl(uint8_t channel) // /LAPI/V1.0/Channels//Media/Video/Streams//LiveStreamURL?TransType=&TransProtocol= char url[128] = { 0 }; - snprintf(url, sizeof(url), "/Streams/%u/1/Transport", (uint32_t)channel); + snprintf(url, sizeof(url), "http://%s/Streams/%u/1/Transport", m_ip.c_str(), (uint32_t)channel); std::vector resData; + int res = DoGetRequest(url, HTTP_AUTH_TYPE_BASIC, m_userName.c_str(), m_password.c_str(), m_netHandle, resData); if (res != 0 || resData.empty()) { @@ -49,9 +50,8 @@ std::string HangYuCtrl::GetStreamingUrl(uint8_t channel) { return ""; } - strncpy(url, start, end - start); - return std::string(url); + return std::string(start, end); } bool HangYuCtrl::UpdateTime(time_t ts)