在相親交友原始碼中實現視訊連麥直播需要哪些步驟?
親交友原始碼實現視訊連麥核心步驟分析
親交友原始碼視訊連麥技術端調研
信令互動
遊客
/申請連麥 fun applyLine() { RtmManager.instance.sendPeerMessage(hostId, "{"cmd": "apply", "avatar": "$userAvatar", "userName": "$userNickname"}" ) } //取消申請連麥 fun cancelApply() { RtmManager.instance.sendPeerMessage( hostId,"{"cmd": "cancelApply"}" ) } //收到信令回撥通知 override fun onP2PMessageReceived(var1: RtmMessage?, var2: String?) { val params = JSONObject(var1.text) when (params.get("cmd")) { "acceptLine" -> { //主播同意 } "rejectLine" -> { //主播拒絕 } } }
主播
//拒絕遊客連麥 fun rejectLine(uid: String) { RtmManager.instance.sendPeerMessage(uid, "{"cmd": "rejectLine"}" ) } //同意主播連麥 fun acceptLine(uid: String) { RtmManager.instance.sendPeerMessage(uid, "{"cmd": "acceptLine"}" ) } override fun onP2PMessageReceived(var1: RtmMessage?, var2: String?) { val params = JSONObject(var1.text) when (params.get("cmd")) { "apply" -> { //收到遊客申請連麥 } "cancelApply" -> { //遊客取消申請連麥 } } }
音視訊推流
1.RTC
主播
//初始化 SDK 引擎 RtcManager.instance.initRtc(ctx) //開啟視訊模組 RtcManager.instance.enableVideo() //開啟本地攝像頭設定檢視顯示 RtcManager.instance.setupLocalVideo(VideoCanvas(textureView)) //加入房間 RtcManager.instance.joinChannel(rtcToken, roomId, userId, isHost)
//在這顯示上麥的人的視訊 override fun onUserJoined(uid: String?, elapsed: Int) { // add remote user } //移除他人視訊 override fun onUserOffline(uid: String?, reason: Int) { //remove remote user }
遊客
//轉換身份 RtcManager.instance.setClientRole(Constants.CLIENT_ROLE_BROADCASTER) //新增自己的視訊 val clientTexture = RtcEngine.CreateRendererView(this) addVideoView( binding.rlHostView, clientTexture, yourself = true, setupLocalVideo = true ) binding.apply.text = "下麥"
2.RTMP+CDN
主播推流到 CDN
//加入頻道成功 override fun joinChannelSuccess() { //設定合流引數 publishPushLiveTranscoding() //新增推流地址 RtcManager.instance.addPublishStreamUrl(cdnUrl, true) } private fun publishPushLiveTranscoding( transcodingArr: List<LiveTranscoding.TranscodingUser>, canvasInfo: CDNStreamLayoutInfo ) { rtcEngine?.setLiveTranscoding(LiveTranscoding().apply { width = canvasInfo.width height = canvasInfo.height }.apply { transcodingArr.forEach { addUser(it) } }) } //遊客上麥 override fun onUserJoin(uid: String) { //更新合流佈局 updatePushLiveTranscoding() } //遊客下麥 override fun onUserOffline(uid: String) { //更新合流佈局 updatePushLiveTranscoding() }
遊客拉流播放
//建立播放器並播放主播的流 RtcManager.instance.initMediaPlayer().apply { open(cdnUrl, 0) setView(textureView) play() }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996194/viewspace-2838179/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 相親交友原始碼中語音連麥的實現方式,值得一看原始碼
- 相親交友原始碼中,音訊AAC解碼的實現程式碼原始碼音訊
- 在相親原始碼的多人音視訊聊天中插入現場直播的實現方式原始碼
- 相親交友原始碼實現相親直播間,移動終端的優化方案原始碼優化
- 開發相親交友原始碼,需要熟練掌握的音視訊基礎知識原始碼
- 相親交友原始碼開發,前端如何實現水印功能?原始碼前端
- 編寫相親交友原始碼,註釋方面應該重視哪些問題?原始碼
- 相親交友原始碼前端效能優化,通常使用哪些手段?原始碼前端優化
- 2022直播交友原始碼一對多直播系統原始碼同城視訊聊天交友app原始碼APP
- 如何在相親交友原始碼中實現正方形驗證碼輸入框?原始碼
- 如何實現直播連麥?音視訊SDK不可缺少!
- 相親交友原始碼的架構設計,實現合成複用原則需要如何做?原始碼架構
- 直播原始碼和短視訊原始碼,相親相愛的一家人原始碼
- 相親交友原始碼實現程式內快取,提升高併發能力!原始碼快取
- 陪玩系統原始碼實現音訊編碼的相關步驟原始碼音訊
- 如何實現相親交友原始碼的CPU效能優化?解決方案梳理原始碼優化
- 相親交友原始碼開發中,Redis的三種限流方式原始碼Redis
- 相親交友原始碼中的事件循壞,你瞭解多少?原始碼事件
- 搭建相親交友原始碼 ,API 介面統一格式返回的實現原始碼API
- 目前一對一語音視訊直播、交友、原始碼都具備哪些功能點?原始碼
- 一對一交友原始碼+直播原始碼+短視訊原始碼,誰才是流量之王?原始碼
- 相親交友原始碼開發,前端API如何請求快取?原始碼前端API快取
- 視訊直播原始碼+一對一交友原始碼+短視訊原始碼,抓住5G就是抓住機遇原始碼
- 手機直播原始碼,css實現水平居中的方式和步驟原始碼CSS
- 相親交友原始碼開發中會用到的幾種日期處理方法原始碼
- 如何解決相親交友原始碼中Redis快取擊穿、雪崩問題?原始碼Redis快取
- 未來不是夢,一對一視訊直播交友原始碼圓夢原始碼
- 在相親原始碼開發中,如何實現圓角及特殊圓角的使用?原始碼
- 有視訊APP上線,一對一交友原始碼和抖音短視訊原始碼穩步前行APP原始碼
- APP一對一直播交友帶社群動態短視訊功能一對多直播交友系統原始碼APP原始碼
- 語音直播系統原始碼與視訊直播系統原始碼哪些區別原始碼
- 直播原始碼,一對一交友原始碼,短視訊原始碼,你知道他們的區別嗎?原始碼
- 相親交友原始碼第三方登入的實現及易擴充套件的達成原始碼套件
- 一對一直播交友原始碼實現即時通訊非常“有一套”原始碼
- 短視訊原始碼,在Android 中opengl es實現燈光效果原始碼Android
- 相親原始碼中移動支付的實現,沒有想象中那麼難原始碼
- 短視訊app原始碼,連麥時最小化出現可移動懸浮窗APP原始碼
- 八月十五鬧中秋,嫦娥一對一直播交友原始碼視訊聊原始碼