講講網易云信iM下的語音視頻通話

1 網易自己的Demo

? ? ? ? ? ? 首先是講講網易云在線教育這個demo ?

集成的話可以參考下demo(記得初始化),這個就不說了 首先是注冊 網易云的demo是用的自己封裝的 網絡請求用的是Executor寫的 這個不是很懂久不介紹了


register上傳

可以看到請求頭是三個參數 請求體是用戶名和昵稱和密碼拼湊成字符串上傳上去(這個用的是網易云自己的后臺服務器) 然后定義了兩個接口?

onFailed ?onSuccess把成功或者失敗后的message來回調

register請求

如果發生錯誤的話可以去網易開發文檔參考下code對于的具體錯誤(Server)

然后開始登陸 我們可以看到密碼是通過MD5加密的 通過得到AuthService服務登陸 對應得清單文件服務要開啟?

login

登陸以后的話開始創建房間, 這個的話比較有意思的是網絡請求是對應死的這個demo的appkey別的一律是顯示配對appkey錯誤.如果請求成功的話,會返回一個roomID,并且房主會默認加入這個房間(自己集成的時候是需要手動加入的)

create
create請求

然后就是所謂的ChatRoomActivity 但是真正的頁面邏輯是在ChatRoomFragment里面 可以看到是通過拿到ChatRoomService這個服務來拿到對應進入這個房間的roomId和url(這個房間推拉流的地址),但是我自己集成的時候這個是一直出問題的具體原因在哪不知道

繼續流程走下去可以看到是初始化了ChatRoomFragment這個碎片

然后就開始視頻的一些配置 我們可以看到joinRoom是需要4個參數 第一個是roomId(創建生成 也可以搜索進去),第二個參數AVChatType

可以是VIDEO和AUDIO 第三個是AVChatOptionalConfig可以設置setLiveUrl(shareUrl)設置直播流地址(房主設置) enableLive(true);是否允許互動直播。

enableAudienceRole(false);多人通話是否觀眾角色進入。這個方法很關鍵 只能房主設置false 自身是觀眾的時候設置true要不然不能打開Live

還有些設置視頻的幀率 還有視頻清晰度等等;Demo里面內部封裝了權限管理寫的蠻好用的,畫布用的是AVChatVideoRender對象動態加載到布局上面

AVChatManager.getInstance().observeAVChatState(this,true);通過注冊這個觀察者在對應的onCallEstablished完成畫布的渲染

AVChatManager.getInstance().setupVideoRender(s,masterRender,false,mode); 第一個參數是url 第二個是畫布對象 第三個是繪制是否鏡像 第四個是直播的模式,這樣就可以把開始視頻了。Demo里面的話自己寫了一套權限管理 看起來還是很麻煩 ?這里也只是簡單的說了下demo 有興趣的可以自己去看看



2 自己集成的注意點

1 首先就是注冊了 首先用網易云的demo是完全不能注冊的除非用它的key 而且表單頭和請求體完全和Dmeo是不一樣的 如下所示

2 然后我們打開開發文檔打開Server 發現請求頭和請求體所需要的參數如下所示


3 CreateRoom的時候需要房主在加入這個房間(Demo是不一樣的浪費好久時間尷尬)

4 我們可以通過關閉上傳視頻流來打到只開啟語音房的功能 startLive這個是要開啟的要不然沒有聲音

5 在onDestroy的時候記得離開這個房間 要不然下次是不能再次進去這個房間的

6 AVChatManager.getInstance().enableAudienceRole(true); 這個設置為false的時候看不到別的觀眾

7 最好不用AVChatVideoRender作為布局 因為要切換成別的視頻流的時候很難操作,最好是動態加載上去

8 在沒有登錄的時候調用AVChatManager.getInstance().observeAVChatState(this, register)的時候會出現用戶沒有開始直播的權限請求;

9 如果app本身是帶有背景音樂的話 會直接被網易云的sdk把音樂關閉 目前沒什么好的解決辦法只能通過伴音

10 設置播放遠程用戶的視頻和本地用戶的視頻的時候盡量try catch

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 點擊查看原文 Web SDK 開發手冊 SDK 概述 網易云信 SDK 為 Web 應用提供一個完善的 IM 系統...
    layjoy閱讀 13,867評論 0 15
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,829評論 25 708
  • 舟已離港曾幾時, 感慨有伴意萬千, 奈何路至一半時, 他人欲歸半湖擱, 折舟逆水反原路, 難為回頭劃舟人, 至此停...
    安雁濃閱讀 174評論 0 0
  • 我的閨蜜,結束五年的愛情長跑后,到現在已經持續了三年的感情空窗期。她身邊從來不缺追求的對象,任憑對方怎么死纏爛打,...
    _瘋子閱讀 454評論 0 3