From 988746d7089508431cd6f7913454a521c2dc556a Mon Sep 17 00:00:00 2001 From: acgist <289547414@qq.com> Date: Tue, 28 Nov 2023 18:27:01 +0800 Subject: [PATCH] =?UTF-8?q?[*]=20=E9=B8=BF=E8=92=99webrtc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taoyao/media/src/main/cpp/CMakeLists.txt | 1 + .../taoyao/media/src/main/cpp/bind.cpp | 15 ++++++++-- .../src/main/cpp/include/MediaManager.hpp | 3 ++ .../media/src/main/cpp/media/MediaManager.cpp | 23 +++++++++++++++ .../src/main/cpp/types/libtaoyao/index.d.ts | 28 +++++++++---------- .../src/main/ets/taoyao/TaoyaoSignal.ets | 1 + 6 files changed, 55 insertions(+), 16 deletions(-) diff --git a/taoyao-client-openharmony/taoyao/media/src/main/cpp/CMakeLists.txt b/taoyao-client-openharmony/taoyao/media/src/main/cpp/CMakeLists.txt index f64ca95..fce6c78 100644 --- a/taoyao-client-openharmony/taoyao/media/src/main/cpp/CMakeLists.txt +++ b/taoyao-client-openharmony/taoyao/media/src/main/cpp/CMakeLists.txt @@ -45,4 +45,5 @@ target_link_libraries( ${PROJECT_NAME} PUBLIC mediasoupclient libace_napi.z.so + libhilog_ndk.z.so ) diff --git a/taoyao-client-openharmony/taoyao/media/src/main/cpp/bind.cpp b/taoyao-client-openharmony/taoyao/media/src/main/cpp/bind.cpp index fb159b2..c4ebb0e 100644 --- a/taoyao-client-openharmony/taoyao/media/src/main/cpp/bind.cpp +++ b/taoyao-client-openharmony/taoyao/media/src/main/cpp/bind.cpp @@ -14,12 +14,23 @@ namespace acgist { -acgist::MediaManager* mediaManager; +acgist::MediaManager* mediaManager = nullptr; std::map roomMap; std::map sessionMap; static void init() { -// OH_LOG_INFO(LOG_APP, "加载bind"); + OH_LOG_INFO(LOG_APP, "加载libtaoyao"); + // TODO:输出编码能力 + mediaManager = new MediaManager(); + mediaManager->initPeerConnectionFactory(); +} + +static void shutdown() { + OH_LOG_INFO(LOG_APP, "卸载libtaoyao"); + if (mediaManager != nullptr) { + delete mediaManager; + mediaManager = nullptr; + } } static napi_value sessionCall(napi_env env, napi_callback_info info) { return 0; } diff --git a/taoyao-client-openharmony/taoyao/media/src/main/cpp/include/MediaManager.hpp b/taoyao-client-openharmony/taoyao/media/src/main/cpp/include/MediaManager.hpp index 1650abc..377e6cd 100644 --- a/taoyao-client-openharmony/taoyao/media/src/main/cpp/include/MediaManager.hpp +++ b/taoyao-client-openharmony/taoyao/media/src/main/cpp/include/MediaManager.hpp @@ -14,6 +14,9 @@ namespace acgist { class MediaManager { +public: + MediaManager(); + ~MediaManager(); public: webrtc::PeerConnectionFactory* peerConnectionFactoryPtr; public: diff --git a/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/MediaManager.cpp b/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/MediaManager.cpp index e69de29..1a1901a 100644 --- a/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/MediaManager.cpp +++ b/taoyao-client-openharmony/taoyao/media/src/main/cpp/media/MediaManager.cpp @@ -0,0 +1,23 @@ +#include "../include/MediaManager.hpp" + +#include "api/peer_connection_interface.h" + +acgist::MediaManager::MediaManager() { + this->peerConnectionFactoryPtr = nullptr; +} + +acgist::MediaManager::~MediaManager() { + if(this->peerConnectionFactoryPtr != nullptr) { +// delete this->peerConnectionFactoryPtr; + this->peerConnectionFactoryPtr->Release(); + this->peerConnectionFactoryPtr = nullptr; + } +} + +void acgist::MediaManager::initPeerConnectionFactory() { +// webrtc::PeerConnectionFactoryDependencies peerConnectionFactoryDependencies; +// webrtc::PeerConnectionFactory::Create(PeerConnectionFactoryDependencies dependencies) +// webrtc::PeerConnectionFactoryDependencies c; +// this->peerConnectionFactoryPtr = webrtc::PeerConnectionFactory::Create(c); +} + diff --git a/taoyao-client-openharmony/taoyao/media/src/main/cpp/types/libtaoyao/index.d.ts b/taoyao-client-openharmony/taoyao/media/src/main/cpp/types/libtaoyao/index.d.ts index 4615052..1e8719e 100644 --- a/taoyao-client-openharmony/taoyao/media/src/main/cpp/types/libtaoyao/index.d.ts +++ b/taoyao-client-openharmony/taoyao/media/src/main/cpp/types/libtaoyao/index.d.ts @@ -1,18 +1,18 @@ -export const sessionCall: () => void; -export const sessionPause: () => void; -export const sessionResume: () => void; +export const sessionCall : () => void; +export const sessionPause : () => void; +export const sessionResume : () => void; export const sessionExchange: () => void; -export const sessionClose: () => void; -export const mediaConsume: () => void; -export const mediaConsumerClose: () => void; -export const mediaConsumerPause: () => void; +export const sessionClose : () => void; +export const mediaConsume : () => void; +export const mediaConsumerClose : () => void; +export const mediaConsumerPause : () => void; export const mediaConsumerResume: () => void; -export const mediaProducerClose: () => void; -export const mediaProducerPause: () => void; +export const mediaProducerClose : () => void; +export const mediaProducerPause : () => void; export const mediaProducerResume: () => void; -export const roomClientList: () => void; -export const roomClose: () => void; -export const roomEnter: () => void; -export const roomExpel: () => void; +export const roomClientList : () => void; +export const roomClose : () => void; +export const roomEnter : () => void; +export const roomExpel : () => void; export const roomInvite: () => void; -export const roomLeave: () => void; +export const roomLeave : () => void; diff --git a/taoyao-client-openharmony/taoyao/media/src/main/ets/taoyao/TaoyaoSignal.ets b/taoyao-client-openharmony/taoyao/media/src/main/ets/taoyao/TaoyaoSignal.ets index 6989f46..b0c2f39 100644 --- a/taoyao-client-openharmony/taoyao/media/src/main/ets/taoyao/TaoyaoSignal.ets +++ b/taoyao-client-openharmony/taoyao/media/src/main/ets/taoyao/TaoyaoSignal.ets @@ -8,6 +8,7 @@ import hilog from '@ohos.hilog'; import webSocket from '@ohos.net.webSocket'; import { setting } from './Setting'; +import libtaoyao from 'libtaoyao.so' interface BusinessError extends Error { code: number;