火山 RTC 引擎9 ----集成 appkey

一、集成 appkey

1、網易RTC 初始化過程

1)、添加頭文件

實現互動直播 - 互動直播 2.0網易云信互動直播產品的基本功能包括音視頻通話和連麥直播,當您成功初始化 SDK 之后,您可以簡單體驗本產品的基本業務流程,例如主播加入房間、觀眾CDN拉流、連麥者上下麥、結束直播等。本文檔為您展示互動直播提供的基本業務流程。https://doc.yunxin.163.com/interactive-streaming/guide/jM1MjM5ODc?platform=windows

  #include "nrtc_engine.h"

2)、初始化NERtcEngine?

    // 創建 RTC 引擎對象并返回指針。nertc::IRtcEngineEx *rtc_engine_ = (IRtcEngineEx *)createNERtcEngine();// 設置已開通音視頻功能的云信應用的AppKey。rtc_engine_context_.app_key = app_key_.c_str();// 設置日志目錄的完整路徑,采用UTF-8 編碼。可選。rtc_engine_context_.log_dir_path = log_dir_path_.c_str();// 設置日志級別,默認級別為 kNERtcLogLevelInfo。rtc_engine_context_.log_level = log_level;// 指定 SDK 輸出日志文件的大小上限,單位為 KB。如果設置為 0,則默認為 20 M。rtc_engine_context_.log_file_max_size_KBytes = log_file_max_size_KBytes;// 設置SDK向應用發送回調事件的通知。rtc_engine_context_.event_handler = this;// 初始化 NERTC SDK 服務。if (kNERtcNoError != rtc_engine_->initialize(rtc_engine_context_)){//TODO}

3)、NRTCEngine

3.1)、
class NRTCEngine  {public:explicit NRTCEngine(void *parent);~NRTCEngine();nertc::IRtcEngineEx* GetRtcEngine() { return rtc_engine_; }bool Init(const char* app_key, const char* log_dir_path, uint32_t log_file_max_size_KBytes);void Uninit();int joinChannel(const string& token, const string& roomid, const string& uid, bool autoStartVideo, bool autoStartAudio, int video_resolution,std::string json="");int leaveChannel();void setCurrentVideoProfile(unsigned int index);int muteLocalAudioStream(bool mute);int sendSEIMsg(std::string SEIMsg);int enableLocalVideo(bool enabled);

3.2)、
bool NRTCEngine::Init(const char *app_key, const char *log_dir_path, uint32_t log_file_max_size_KBytes){//return true;rtc_engine_ = static_cast<IRtcEngineEx *>(createNERtcEngine());rtc_engine_context_.app_key = app_key;rtc_engine_context_.log_dir_path = log_dir_path;rtc_engine_context_.log_level = kNERtcLogLevelInfo;rtc_engine_context_.log_file_max_size_KBytes = log_file_max_size_KBytes;rtc_engine_context_.event_handler = rtc_engine_handler_.get();rtc_engine_context_.video_use_exnternal_render = false;//Init NERTC engineif (kNERtcNoError != rtc_engine_->initialize(rtc_engine_context_)){//qDebug("ERROR: Failed to initialize NERtc Engine\n");return false;}rtc_engine_->setStatsObserver(rtc_engine_handler_.get());//Init audio/video device managerauto ret = rtc_engine_->queryInterface(kNERtcIIDAudioDeviceManager, (void**)&audio_device_manager);//auto ret= rtc_engine_->queryInterface(nertc::kNERtcIIDAudioDeviceManager, (void**)(&audio_device_manager));ret = rtc_engine_->queryInterface(kNERtcIIDVideoDeviceManager, (void**)&video_device_manager);rtc_engine_->setParameters("{\"publish_self_stream_enabled\":true,\"audio_processing_ai_ns_enable\":true}"); //AI 降噪GetAllDeviceInfo();rtc_engine_->enableSuperResolution(true); //AI 超分//	rtc_engine_->startBeauty("d:\\bk\\nebeauty");return true;
}
3.3)、APP_KEY

NRTCEngine::NRTCEngine(void *parent): rtc_engine_handler_(new NRTCEngineEvent(*this))
{auto_start_video_ = false;auto_start_audio_ = false;rtc_engine_ = nullptr;audio_device_manager = nullptr;video_device_manager = nullptr;connection_state_ = kNERtcConnectionStateDisconnected;cur_my_uid_ = 0;app_key_ = APP_KEY;current_video_profile = kNERtcVideoProfileStandard;std::string byteLogDir ;

#define APP_KEY "81b33512dd86b9f4cffafe....."    // put your app key here, testing
#define MAX_PATH 260  // max length of the log's directory path
#define LIVE_STREAM_WIDTH (g_CanvasW)
#define LIVE_STREAM_HEIGHT (g_CanvasH)

2、字節SDK 初始化過程

1)、appkey

集成到項目中,暫時放在nrtc_engine.h中

2)、調用示例

	//火山rtcbytertc::IRTCVideo* m_video = nullptr;std::unique_ptr<ByteRTCEventHandler> m_handler;void CreateByterRtcVideo();

void NRTCEngine::CreateByterRtcVideo()
{bytertc::LogConfig log;log.log_level = bytertc::LocalLogLevel::kInfo;bytertc::setLogConfig(log);if (m_video == nullptr) {m_handler.reset(new ByteRTCEventHandler());m_video = bytertc::createRTCVideo(g_appid.c_str(), m_handler.get(), nullptr);if (m_video == nullptr) {return;}}else {return;}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83996.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83996.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83996.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

詳細介紹Qwen3技術報告中提到的模型架構技術

詳細介紹Qwen3技術報告中提到的一些主流模型架構技術&#xff0c;并為核心流程配上相關的LaTeX公式。 這些技術都是當前大型語言模型&#xff08;LLM&#xff09;領域為了提升模型性能、訓練效率、推理速度或穩定性而采用的關鍵組件。 1. Grouped Query Attention (GQA) - 分組…

光電效應理論與實驗 | 從愛因斯坦光量子假說到普朗克常量測定

注&#xff1a;本文為“光電效應”相關文章合輯。 英文引文&#xff0c;機翻未校。 中文引文&#xff0c;略作重排&#xff0c;未整理去重。 圖片清晰度受引文原圖所限。 如有內容異常&#xff0c;請看原文。 Photoelectric Effect 光電效應 Discussion dilemma Under the…

Visual Studio 2019/2022:當前不會命中斷點,還沒有為該文檔加載任何符號。

1、打開調試的模塊窗口&#xff0c;該窗口一定要在調試狀態下才會顯示。 vs2019打開調試的模塊窗口 2、Visual Studio 2019提示未使用調試信息生成二進制文件 未使用調試信息生成二進制文件 3、然后到debug目錄下看下確實未生成CoreCms.Net.Web.WebApi.pdb文件。 那下面的…

打破性能瓶頸:用DBB重參數化模塊優化YOLOv8檢測頭

文章目錄 引言DBB 重參數化模塊簡介DBB 的優勢 YOLOv8 檢測頭的結構分析使用 DBB 模塊魔改檢測頭替換策略代碼實現改進后的效果預期 實驗與驗證總結與展望 引言 在目標檢測領域&#xff0c;YOLO 系列算法一直以其高效的檢測速度和不錯的檢測精度受到廣泛關注。隨著版本的不斷更…

如何成為更好的自己?

成為更好的自己是一個持續成長的過程&#xff0c;需要結合自我認知、目標規劃和行動力。以下是一些具體建議&#xff0c;幫助你逐步提升&#xff1a; 1. 自我覺察&#xff1a;認識自己 反思與復盤&#xff1a;每天花10分鐘記錄當天的決策、情緒和行為&#xff0c;分析哪些做得…

免費使用GPU的探索筆記

多種有免費時長的平臺 https://www.cnblogs.com/java-note/p/18760386 Kaggle免費使用GPU的探索 https://www.kaggle.com/ 注冊Kaggle賬號 訪問Kaggle官網&#xff0c;使用郵箱注冊賬號。 發現gpu都是灰色的 返回home&#xff0c;右上角的頭像點開 驗證手機號 再次code-you…

CSS- 4.2 相對定位(position: relative)

本系列可作為前端學習系列的筆記&#xff0c;代碼的運行環境是在HBuilder中&#xff0c;小編會將代碼復制下來&#xff0c;大家復制下來就可以練習了&#xff0c;方便大家學習。 HTML系列文章 已經收錄在前端專欄&#xff0c;有需要的寶寶們可以點擊前端專欄查看&#xff01; 點…

如何使用Antv X6使用拖拽布局?

拖拽效果圖 拖拽后 布局預覽 官方&#xff1a; X6 圖編輯引擎 | AntV 安裝依賴 # npm npm install antv/x6 --save npm install antv/x6-plugin-dnd --save npm install antv/x6-plugin-export --save需要引入的代碼 import { Graph, Shape } from antv/x6; import { Dnd } …

數據庫健康監測器(BHM)實戰:如何通過 HTML 報告識別潛在問題

在數據庫運維中,健康監測是保障系統穩定性與性能的關鍵環節。通過 HTML 報告,開發者可以直觀查看數據庫的運行狀態、資源使用情況與潛在風險。 本文將圍繞 數據庫健康監測器(Database Health Monitor, BHM) 的核心功能展開分析,結合 Prometheus + Grafana + MySQL Export…

PCB設計實踐(二十四)PCB設計時如何避免EMI

PCB設計中避免電磁干擾&#xff08;EMI&#xff09;是一項涉及電路架構、布局布線、材料選擇及制造工藝的系統工程。本文從設計原理到工程實踐&#xff0c;系統闡述EMI產生機制及綜合抑制策略&#xff0c;覆蓋高頻信號控制、接地優化、屏蔽技術等核心維度&#xff0c;為高密度、…

嵌入式硬件篇---陀螺儀|PID

文章目錄 前言1. 硬件準備主控芯片陀螺儀模塊電機驅動電源其他2. 硬件連接3. 軟件實現步驟(1) MPU6050初始化與數據讀取(2) 姿態解算(互補濾波或DMP)(3) PID控制器設計(4) 麥克納姆輪協同控制4. 主程序邏輯5. 關鍵優化與調試技巧(1) 傳感器校準(2) PID參數整定先調P再調D最后…

【Linux基礎I/O】文件調用接口、文件描述符、重定向和緩沖區

【Linux基礎I/O一】文件描述符和重定向 1.C語言的文件調用接口2.操作系統的文件調用接口2.1open接口2.2close接口2.3write接口2.4read接口 3.文件描述符fd的本質4.標準輸入、輸出、錯誤5.重定向5.1什么是重定向5.2輸入重定向和輸出重定向5.3系統調用的重定向dup2 6.緩沖區 1.C語…

鴻蒙HarmonyOS 【ArkTS組件】通用屬性-背景設置

&#x1f4d1;往期推文全新看點&#xff08;附帶最新鴻蒙全棧學習筆記&#xff09; 嵌入式開發適不適合做鴻蒙南向開發&#xff1f;看完這篇你就了解了~ 鴻蒙崗位需求突增&#xff01;移動端、PC端、IoT到底該怎么選&#xff1f; 分享一場鴻蒙開發面試經驗記錄&#xff08;三面…

【76. 最小覆蓋子串】

Leetcode算法練習 筆記記錄 76. 最小覆蓋子串 76. 最小覆蓋子串 滑動窗口的hard題目&#xff0c;思路先找到第一個覆蓋的窗口&#xff0c;不斷縮小左邊界&#xff0c;找到更小的窗口并記錄。 思路很簡單&#xff0c;寫起來就不是一會事了&#xff0c;看題解看了幾個h&#xff0…

Spring事務簡單操作

什么是事務&#xff1f; 事務是一組操作的集合&#xff0c;是一個不可分割的操作 事務會把所有的操作作為?個整體, ?起向數據庫提交或者是撤銷操作請求. 所以這組操作要么同時 成功, 要么同時失敗. 事務的操作 分為三步&#xff1a; 1. 開啟事start transaction/ begin …

Rust 學習筆記:關于錯誤處理的練習題

Rust 學習筆記&#xff1a;關于錯誤處理的練習題 Rust 學習筆記&#xff1a;關于錯誤處理的練習題想看到回溯&#xff0c;需要把哪個環境變量設置為 1&#xff1f;以下哪一項不是使用 panic 的好理由&#xff1f;以下哪一項最能描述為什么 File::open 返回的是 Result 而不是 O…

MCP 協議傳輸機制大變身:拋棄 SSE,投入 Streamable HTTP 的懷抱

在技術的江湖里&#xff0c;變革的浪潮總是一波接著一波。最近&#xff0c;模型上下文協議&#xff08;MCP&#xff09;的傳輸機制就搞出了大動靜&#xff0c;決定和傳統的服務器發送事件&#xff08;SSE&#xff09;說拜拜&#xff0c;轉身擁抱 Streamable HTTP&#xff0c;這…

138. Copy List with Random Pointer

目錄 題目描述 方法一、使用哈希表 方法二、不使用哈希表 題目描述 問題的關鍵是&#xff0c;random指針指向的是原鏈表的結點&#xff0c;這個原鏈表的結點對應哪一個新鏈表的結點呢&#xff1f;有兩種辦法。一是用哈希表。另一種是復制原鏈表的每一個結點&#xff0c;并將…

如何評估開源商城小程序源碼的基礎防護能力?

在電商行業快速發展的背景下&#xff0c;開源商城已經為更多企業或者開發者的首選方案&#xff0c;不過并不是所有的開源商城源碼都能讓人放心使用&#xff0c;今天就帶大家一起了解下如何評估開源商城小程序源碼的基礎防護能力&#xff0c;幫助大家更好地篩選安全性高的商城源…

[Vue]跨組件傳值

父子組件傳值 詳情可以看文章 跨組件傳值 Vue 的核?是單向數據流。所以在父子組件間傳值的時候&#xff0c;數據通常是通過屬性從?組件向?組件&#xff0c;??組件通過事件將數據傳遞回?組件。多層嵌套場景?般使?鏈式傳遞的?式實現provideinject的?式適?于需要跨層級…