
uniapp?很多人不了解,今天各百科為大家?guī)硐嚓P內(nèi)容,下面為大家?guī)斫榻B。
邀請基本流程發(fā)起被叫接收呼叫、主叫接收呼叫拒絕通知、主叫接收呼叫、主叫呼叫、執(zhí)行RTC相關邏輯、被叫接收呼叫、被叫拒絕呼叫、執(zhí)行RTC60s無操作邀請、呼叫基本流程自動失敗、本地采集音視頻、通過回調(diào)獲取遠程音視頻、初始化RTC實例、加入房間、發(fā)布和渲染音視頻、渲染遠程音視頻arcall工具實現(xiàn)demo源地址(https://pic.qubaike.com/pic/2023-04-02/fxucrgro5ks
//rtm實時消息引入constratmmodule=uni . requirement plugin(' ar-RTM module ');初始化uniapp_arcall的邀請是項目啟動時登錄RTM,所以寫在onLaunch,調(diào)試時會出現(xiàn)以下錯誤
//初始化回調(diào)以等待RTM module . set callback(RES={ switch(RES . RTM event)} {//SDK與RTM系統(tǒng)的連接狀態(tài)發(fā)生變化。case“onConnectionStateChanged”:中斷;//接收到的點對點消息回調(diào)case“onpeermessagereceived”3360 break;//已訂閱用戶的聯(lián)機狀態(tài)更改案例“onpeersonlinestatuschanged”3360 break;//返回主叫:被叫方已接受呼叫邀請case ' onlocalizationaccepted ' 3360 break;//返回調(diào)用方:調(diào)用邀請已取消case ' onlocaltationcancelled ' 3360 break;//返回給調(diào)用者:呼叫邀請過程失敗案例“on local invitation failure”3360 break;//返回主叫:被叫方已收到呼叫邀請案例‘onlocalizationreceivedtype’3360 break;//返回主叫:被叫方已拒絕呼叫邀請案例“onlocaltationretired”3360 break;//返回被叫方:成功接受呼叫邀請案例‘接受遠程邀請’3360 break;//返回被叫方:主叫方取消了呼叫邀請案例“遠程邀請取消”3360break//返回被叫方:來自主叫方的呼叫邀請流程失敗案例“on remote invitation failure”3360 break;//返回給被叫方:收到呼叫邀請案例“on remote invitation received”3360 break;//返回被叫方:成功拒絕呼叫邀請案例“拒絕遠程邀請”3360
break;default:break;}})// 初始化實例await rtmModule.createInstance({"appId": "你的 appid"}, res => {console.log(res);})// 登錄 RTM 系統(tǒng)await rtmModule.login({"token": "","userId": "本地用戶標識"}, (res) => {console.log("登錄 RTM 系統(tǒng)", res);})// // 使用 RTM 呼叫邀請(設置邀請呼叫實例的監(jiān)聽器)await rtmModule.setCallEventListener();主叫查詢呼叫用戶是否在線rtmModule.queryPeersOnlineStatus({ "peerIds": <"呼叫用戶"> }, (res) => { console.log(res); })呼叫用戶在線時發(fā)起呼叫并訂閱發(fā)起呼叫 把本地創(chuàng)建的頻道房間發(fā)送過去rtmModule.sendLocalInvitation({ "calleeId": calleeId, // 被呼叫者的 user ID "content": JSON.stringify(info) // 邀請內(nèi)容 }, (res) => { resolve(res.code); })訂閱(獲取對方在線狀態(tài)) 當結束通話或結束邀請時記得取消訂閱拒絕呼叫rtmModule.refuseRemoteInvitation({"calleeId": userId,"response": JSON.stringify(info) /邀請內(nèi)容}, (res) => {});接受呼叫rtmModule.acceptRemoteInvitation({"calleeId": calleeId, // 供被叫獲取主叫的用戶 ID"response": info ? JSON.stringify(info) : "" // 邀請響應}, (res) => {});// 訂閱對方在線狀態(tài)...相關提示相關的提示、邏輯都可通過回調(diào)來進行操作
<AR-CanvasView ref="location" style="flex: 1;" />不管是主叫還是被叫,收到接聽的回調(diào)后就可以進入 RTC 的相關邏輯
Store.remote 與 Store.location 類似
需要更詳細,更具體,更全面的代碼請前往 demo 源碼 地址(https://pic.qubaike.com/pic/2023-04-02/3sazoa2ojj4
注意事項RTM 初始化、RTC 初始化都只需要執(zhí)行一次,多次執(zhí)行請殺掉程序RTM 可以在 vue頁面, RTC 視頻容器必須在 nvue 頁面











