Uni-app是一個使用Vue.js開發(fā)所有前端應用的框架,開發(fā)者編寫一套代碼,可發(fā)布到iOS、Android、Web(響應式)、以及各種小程序(微信/支付寶/百度/頭條/QQ/釘釘/淘寶)、快應用等多個平臺。其中,uni-app如何實現(xiàn)直播功能?下面我們一起來到ZEGO即構科技的官網(wǎng)看看相關實現(xiàn)流程。
1前提條件
在實現(xiàn)基本的實時音視頻之前,請確保:
1.已在項目中集成ZEGO Express SDK,詳情請參考快速開始-集成和快速開始-實現(xiàn)流程。
2.已在ZEGO控制臺創(chuàng)建項目,申請有效的AppID和AppSign,詳情請參考控制臺 – 項目管理。
2使用步驟
以用戶A拉取用戶B的流為例,流程如下圖:
整個推拉流過程的API 調用時序如下圖:
2.1創(chuàng)建引擎
1.(可選)創(chuàng)建界面
2. 創(chuàng)建引擎
l 調用 createEngine 接口,將申請到的AppID和AppSign分別傳入?yún)?shù) “appID”和“appSign”,創(chuàng)建引擎。
l 如果需要注冊回調方法,開發(fā)者可根據(jù)實際需要,實現(xiàn)ZegoEventListener中的某些方法,創(chuàng)建引擎后可通過調用on接口設置回調。
2.2登錄房間
1.登錄
傳入用戶ID參數(shù)“userID” 創(chuàng)建ZegoUser用戶對象后,調用loginRoom接口,傳入房間ID參數(shù)“roomID”和用戶參數(shù)“user”,登錄房間。
2.監(jiān)聽登錄房間后的事件回調
可根據(jù)實際應用需要,在登錄房間后監(jiān)聽想要關注的事件通知,比如房間狀態(tài)更新、用戶狀態(tài)更新、流狀態(tài)更新等。
l roomStateUpdate:房間狀態(tài)更新回調,登錄房間后,當房間連接狀態(tài)發(fā)生變更(如出現(xiàn)房間斷開,登錄認證失敗等情況),SDK 會通過該回調通知。
l roomUserUpdate:用戶狀態(tài)更新回調,登錄房間后,當房間內有用戶新增或刪除時,SDK 會通過該回調通知。
只有調用 loginRoom 接口登錄房間時傳入 ZegoRoomConfig 配置,且 “isUserStatusNotify” 參數(shù)取值為 “true” 時,用戶才能收到 roomUserUpdate 回調。
l roomStreamUpdate:流狀態(tài)更新回調,登錄房間后,當房間內有用戶新推送或刪除音視頻流時,SDK 會通過該回調通知。
2.3推流
1.開始推流
調用startPublishingStream 接口,傳入流ID參數(shù)“streamID”,向遠端用戶發(fā)送本端的音視頻流。
2.(可選)啟動本地預覽
3. 監(jiān)聽推流后的事件回調
根據(jù)實際應用需要,在推流后監(jiān)聽想要關注的事件通知,比如推流狀態(tài)更新等。
publisherStateUpdate:推流狀態(tài)更新回調,調用推流接口成功后,當推流狀態(tài)發(fā)生變更,如出現(xiàn)網(wǎng)絡中斷導致推流異常等情況,SDK 在重試推流的同時,會通過該回調通知。
2.4拉流
1. 開始拉流
使用<zego-remote-view> 標簽設置遠端視頻流視圖,調用 startPlayingStream 接口,根據(jù)傳入的流ID參數(shù)“streamID”,拉取遠端推送的音視頻流。
遠端用戶推送的“streamID”可以從 roomStreamUpdate 回調中獲取。
2. 監(jiān)聽拉流后的事件回調
根據(jù)實際應用需要,在拉流后監(jiān)聽想要關注的事件通知,比如拉流狀態(tài)更新等。
playerStateUpdate:拉流狀態(tài)更新回調,調用拉流接口成功后,當拉流狀態(tài)發(fā)生變更,如出現(xiàn)網(wǎng)絡中斷導致推流異常等情況,SDK在重試拉流的同時,會通過該回調通知。
2.5 體驗實時音視頻功能
在真機中運行項目,運行成功后,可以聽到本端音頻,看到本端視頻畫面。
通過Web端調試示例(只支持在測試環(huán)境下使用),輸入相同的App ID和roomID,加入同一房間與真機設備互通。當成功開始直播時,可以同時聽到本端和遠端音頻,看到本端和遠端視頻畫面。
2.6 停止推拉流
1.停止推流/預覽
調用stopPublishingStream 接口停止發(fā)送本地的音視頻流,結束直播。
如果啟用了本地預覽,開發(fā)者可以在停止推流后根據(jù)業(yè)務需要調用 stopPreview 接口停止預覽。
2.停止拉流
調用 stopPlayingStream 接口,停止拉取遠端的音視頻流。
3.退出房間
調用logoutRoom接口退出房間,本端會收到roomStateUpdate回調通知調用結果,并停止其所有推拉流以及本地預覽。
2.7銷毀引擎
調用destroyEngine接口銷毀引擎,用于釋放SDK使用的資源。
以上便是uni-app實現(xiàn)直播功能的具體流程了,如有不清楚的地方,可登錄ZEGO即構科技官方網(wǎng)站進行了解。
版權聲明:本文內容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 舉報,一經查實,本站將立刻刪除。