[*] 鸿蒙webrtc

This commit is contained in:
acgist
2023-11-28 18:27:01 +08:00
parent e58d82af99
commit 988746d708
6 changed files with 55 additions and 16 deletions

View File

@@ -45,4 +45,5 @@ target_link_libraries(
${PROJECT_NAME} PUBLIC ${PROJECT_NAME} PUBLIC
mediasoupclient mediasoupclient
libace_napi.z.so libace_napi.z.so
libhilog_ndk.z.so
) )

View File

@@ -14,12 +14,23 @@
namespace acgist { namespace acgist {
acgist::MediaManager* mediaManager; acgist::MediaManager* mediaManager = nullptr;
std::map<std::string, acgist::Room*> roomMap; std::map<std::string, acgist::Room*> roomMap;
std::map<std::string, acgist::SessionClient*> sessionMap; std::map<std::string, acgist::SessionClient*> sessionMap;
static void init() { 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; } static napi_value sessionCall(napi_env env, napi_callback_info info) { return 0; }

View File

@@ -14,6 +14,9 @@
namespace acgist { namespace acgist {
class MediaManager { class MediaManager {
public:
MediaManager();
~MediaManager();
public: public:
webrtc::PeerConnectionFactory* peerConnectionFactoryPtr; webrtc::PeerConnectionFactory* peerConnectionFactoryPtr;
public: public:

View File

@@ -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);
}

View File

@@ -1,18 +1,18 @@
export const sessionCall: () => void; export const sessionCall : () => void;
export const sessionPause: () => void; export const sessionPause : () => void;
export const sessionResume: () => void; export const sessionResume : () => void;
export const sessionExchange: () => void; export const sessionExchange: () => void;
export const sessionClose: () => void; export const sessionClose : () => void;
export const mediaConsume: () => void; export const mediaConsume : () => void;
export const mediaConsumerClose: () => void; export const mediaConsumerClose : () => void;
export const mediaConsumerPause: () => void; export const mediaConsumerPause : () => void;
export const mediaConsumerResume: () => void; export const mediaConsumerResume: () => void;
export const mediaProducerClose: () => void; export const mediaProducerClose : () => void;
export const mediaProducerPause: () => void; export const mediaProducerPause : () => void;
export const mediaProducerResume: () => void; export const mediaProducerResume: () => void;
export const roomClientList: () => void; export const roomClientList : () => void;
export const roomClose: () => void; export const roomClose : () => void;
export const roomEnter: () => void; export const roomEnter : () => void;
export const roomExpel: () => void; export const roomExpel : () => void;
export const roomInvite: () => void; export const roomInvite: () => void;
export const roomLeave: () => void; export const roomLeave : () => void;

View File

@@ -8,6 +8,7 @@ import hilog from '@ohos.hilog';
import webSocket from '@ohos.net.webSocket'; import webSocket from '@ohos.net.webSocket';
import { setting } from './Setting'; import { setting } from './Setting';
import libtaoyao from 'libtaoyao.so'
interface BusinessError<T = void> extends Error { interface BusinessError<T = void> extends Error {
code: number; code: number;