From 70ca1d014656ac765cb922e9ddf2b9810d127074 Mon Sep 17 00:00:00 2001 From: acgist <289547414@qq.com> Date: Sat, 11 May 2024 15:39:03 +0800 Subject: [PATCH] =?UTF-8?q?[*]=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taoyao/media/src/main/cpp/include/Capturer.hpp | 7 +++++-- .../taoyao/media/src/main/cpp/include/Client.hpp | 14 +++++++------- .../taoyao/media/src/main/cpp/media/Client.cpp | 3 +++ .../media/src/main/cpp/media/LocalClient.cpp | 2 ++ .../taoyao/media/src/main/cpp/media/RoomClient.cpp | 6 ++++-- 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/taoyao-client-openharmony/taoyao/media/src/main/cpp/include/Capturer.hpp b/taoyao-client-openharmony/taoyao/media/src/main/cpp/include/Capturer.hpp index 199d09e..93b0ba2 100644 --- a/taoyao-client-openharmony/taoyao/media/src/main/cpp/include/Capturer.hpp +++ b/taoyao-client-openharmony/taoyao/media/src/main/cpp/include/Capturer.hpp @@ -89,8 +89,11 @@ acgist::Capturer::Capturer() {} template acgist::Capturer::~Capturer() { - // TODO:释放 - // delete this->source; + if(this->source != nullptr) { + this->source->Release(); + // delete this->source; + this->source = nullptr; + } } /** diff --git a/taoyao-client-openharmony/taoyao/media/src/main/cpp/include/Client.hpp b/taoyao-client-openharmony/taoyao/media/src/main/cpp/include/Client.hpp index c09e3d3..01c4c84 100644 --- a/taoyao-client-openharmony/taoyao/media/src/main/cpp/include/Client.hpp +++ b/taoyao-client-openharmony/taoyao/media/src/main/cpp/include/Client.hpp @@ -26,16 +26,14 @@ public: // 媒体管理 acgist::MediaManager* mediaManager = nullptr; // 音频轨道 - webrtc::AudioTrackInterface* audioTrack = nullptr; + rtc::scoped_refptr audioTrack = nullptr; // 视频轨道 - webrtc::VideoTrackInterface* videoTrack = nullptr; + rtc::scoped_refptr videoTrack = nullptr; public: Client(acgist::MediaManager* mediaManager); virtual ~Client(); -public: - }; /** @@ -43,6 +41,10 @@ public: */ class RoomClient : public Client { +public: + // 房间ID + std::string roomId; + public: RoomClient(acgist::MediaManager* mediaManager); virtual ~RoomClient(); @@ -58,9 +60,7 @@ class LocalClient : public RoomClient { public: LocalClient(acgist::MediaManager* mediaManager); - virtual ~LocalClient(); - -public: + virtual ~LocalClient() override; }; diff --git a/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/Client.cpp b/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/Client.cpp index 24ca975..167d2f7 100644 --- a/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/Client.cpp +++ b/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/Client.cpp @@ -1,9 +1,12 @@ #include "../include/Client.hpp" +#include + acgist::Client::Client(acgist::MediaManager* mediaManager) : mediaManager(mediaManager) { } acgist::Client::~Client() { + OH_LOG_INFO(LOG_APP, "释放终端:%s", this->clientId.data()); if(this->audioTrack != nullptr) { this->audioTrack->Release(); // delete this->audioTrack; diff --git a/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/LocalClient.cpp b/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/LocalClient.cpp index bae6cb5..2432679 100644 --- a/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/LocalClient.cpp +++ b/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/LocalClient.cpp @@ -2,6 +2,8 @@ acgist::LocalClient::LocalClient(acgist::MediaManager* mediaManager) : acgist::RoomClient(mediaManager) { this->mediaManager->newLocalClient(); + this->audioTrack = this->mediaManager->getAudioTrack(); + this->videoTrack = this->mediaManager->getVideoTrack(); } acgist::LocalClient::~LocalClient() { diff --git a/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/RoomClient.cpp b/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/RoomClient.cpp index 0353fbd..96302d7 100644 --- a/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/RoomClient.cpp +++ b/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/RoomClient.cpp @@ -1,5 +1,7 @@ #include "../include/Client.hpp" -acgist::RoomClient::RoomClient(acgist::MediaManager* mediaManager) : acgist::Client(mediaManager) {} +acgist::RoomClient::RoomClient(acgist::MediaManager* mediaManager) : acgist::Client(mediaManager) { +} -acgist::RoomClient::~RoomClient() {} +acgist::RoomClient::~RoomClient() { +}