聲網 PK 連麥功能 Android 入門實踐 | 掘金技術徵文

聲網 PK 連麥方案場景主要是針對 CDN 推流拉流場景設計。git

使用場景

聲網 PK 連麥場景針對 CDN 推流場景設計,主要涉及單主播模式和雙主播 PK 模式兩種模式的切換,此外還有可選的觀衆模式。github

單主播模式中,主播能夠採用Agora SDK 或者第三方推流工具(好比 ijkplayer)推流到 CDN。觀衆經過 CDN 播放器拉取主播視頻流觀看直播。web

雙主播 PK 模式中,兩個主播退出 CDN 推流並同時加入同一個聲網頻道,各自在聲網服務端設置雙主播的合圖(setLiveTranscoding),並經過聲網提供的推流接口(addPublishStreamUrl)將合圖後的流推送到原先的 CDN 地址。各自的 CDN 觀衆看到兩個主播開始 PK。bash

因爲兩個 PK 主播各自的 CDN 推流地址未發生改變,CDN 觀衆端不須要切換 CDN 拉流地址。只要任意一個主播離開聲網 PK 頻道,另外一主播也退出 PK 模式返回普通模式。架構

對於可選的觀衆模式,觀衆通常使用第三方 CDN 播放器(好比 ijkplayer)拉取視頻流觀看直播,本示例程序中並不包含觀衆模式。工具

官方文檔中給出了聲網 PK 連麥方案的架構圖:post

實現代碼和 apk 體驗

官方提供了 Android 平臺的實現代碼,你能夠在 GitHub 上下載並進行測試,也能夠基於該代碼進行擴展。學習

固然,官方也提供了已經實現的 apk 文件測試

運行 Demo

首先,咱們能夠經過官方給出的代碼連接下載 Demo:github.com/AgoraIO/ARD…gradle

下載後進行解壓,注意關注一下 gradle 和 gradle tools 的版本號。注意一下代碼配置,這個位置要細緻檢查,防止出錯。

sourceSets {
        main {
            jniLibs.srcDirs = ['src/main/jniLibs']
//            jniLibs.srcDirs = ['../../../libs']
        }
    }
複製代碼

固然,咱們想要運行示例程序,須要先去聲網註冊帳號,建立本身的測試項目,獲取到 AppID。

你也能夠在 視頻通話/視頻直播 SDK 頁面進行 SDK 的下載:

以後主要有如下三個步驟:

  1. 將 AppID 填寫進 PKConstants 的 MEDIA_APP_ID以及SIGNALING_APP_ID 中

  2. 解壓視頻通話/視頻直播 SDK 包,將其中的 jar 和 so 複製到項目對應文件夾下。

  3. 最後使用 AndroidStudio 打開項目,鏈接 Android 測試設備,編譯並運行。

示例程序主要包括如下一些功能

  1. 開始直播:在首頁輸入直播頻道名,點擊「開始直播」按鈕,進入直播房間,開始直播和 CDN 推流;

  2. 發起PK:在房間內點擊「PK」按鈕,並輸入「PK房間名」進入PK(須要兩個主播同時輸入相同的「PK房間名」以進入同一房間);

  3. 退出PK:點擊「退出PK」按鈕,退出PK模式,返回單主播模式;

  4. 退出房間:點擊右上角「離開」按鈕,離開直播房間;

  5. 拷貝拉流地址:在直播中可點擊「拷貝」按鈕,拷貝拉流地址,使用 CDN 播放器(如 VLC)

對於直播拉流,給你們幾個測試地址:

  • 香港財經:rtmp://202.69.69.180:443/webcast/bshdlive-pc
  • 韓國朝鮮日報:rtmp://live.chosun.gscdn.com/live/tvchosun1.stream
  • 湖南衛視:rtmp://58.200.131.2:1935/livetv/hunantv

集成注意事項

  1. 單主播模式與 PK 模式切換時必定要先中止原先的推流,再從新開始推流,不然會推流失敗

  2. 觀衆通常須要感知主播模式的改變來更新UI,通常是經過信令通知觀衆,因爲信令和 CDN 視頻流存在時間差(CDN 推流通常存在數秒的延遲),爲了更好的用戶體驗,能夠在切換模式時作一個延時動畫,讓用戶忽略這個時間差。也能夠經過 CDN 播放器的特有回調(如視頻尺寸改變)來感知主播狀態的變化。

集成時,我就使用了簡單 Channel Name 的方式登陸,怎麼都不行。後來網上查找解決方案,發現加入頻道正式應用中通常採用 Token 模式。

private void joinChannel() {
    // 這個null需傳入Token
    mRtcEngine.joinChannel(null, "demoChannel1", "Extra Optional Data", 0); // if you do not specify the uid, Agora will assign one.
}
複製代碼

此處是看了這篇文章找到的問題:blog.csdn.net/zmm911zmm/a…

以上就是個人聲網 PK 連麥功能 Android 入門初體驗。下面我列一些學習資料,但願對你們有幫助。

參考學習資料


Agora SDK 使用體驗徵文大賽 | 掘金技術徵文,徵文活動正在進行中

相關文章
相關標籤/搜索