聲網一塊兒 KTV 功能初體驗 | 掘金技術徵文

一塊兒 KTV 是一個很重要,且能體現產品性能的功能,在學習聲網 SDK 的時候,看到了一塊兒 KTV 的 GitHub demo,而且官方也給出了相應的文檔說明,在此也對個人學習過程作一個簡單的記錄。git

場景描述

「一塊兒KTV」 是一個依附於直播聊天室的娛樂場景。在這個場景中,一個KTV房間裏的演唱者給其餘人播放 MV 視頻,並跟隨 MV 唱歌給全部人聽。其中:github

  • 觀衆能夠上麥,隨時與房主進行實時音視頻互動;
  • 演唱者隨着 MV 唱歌時,能夠控制歌曲的切換和暫停;
  • 演唱者也能夠單獨只播放 MV 文件;
  • 演唱者能夠本身調節 MV 伴奏和人聲的音量; = 觀衆能夠排麥,當前演唱者結束後由下一位排麥中的人成爲演唱者;

其中須要的功能有:bash

  • 基礎的音視頻互動直播,包括主播、互動連麥;
  • 本地/在線 MV 文件讀取;
  • 將 MV 伴奏和視頻發送給其餘人;
  • 演唱者人聲和 MV 伴奏音樂的混合;

產品架構

聲網的「一塊兒KTV」場景方案,提供了這個場景中實時音視頻互動直播、MV 文件讀取、人聲和 MV 伴奏同步、音量控制、播放控制、發送 MV 伴奏和視頻數據 等相關功能的解決方案。架構

總體架構以下圖所示:app

  1. 演唱者和其餘用戶一塊兒加入聲網頻道,實現實時音視頻通話,其中當前演唱者和連麥者爲主播模式,聽衆爲觀衆模式;
  2. 演唱者播放本地或者在線的 MV 文件;
  3. MV 文件解碼出來的音頻幀數據,混音進聲網 SDK 採集到的演唱者歌聲,並經過聲網 SDK 發送到頻道中;
  4. MV 文件解碼出來的視頻幀數據經過聲網 SDK 發送到頻道中;
  5. 房間內的其餘用戶經過聲網 SDK 接收演唱者的歌聲和 MV 數據。

運行 demo

由於我是 Android 用戶,因此就進行的 Android demo 體驗。ide

首先,你能夠到這裏看源碼:github.com/AgoraIO-Use…工具

  1. 在 Agora.io 中建立本身的項目,並獲取到相應的 App ID。若是你還沒註冊,記得先註冊一下 dashboard.agora.io/cn/signup/。

  1. 以後在路徑 Online-KTV/Agora-Online-KTV-Android/app/src/main/res/values/strings_config.xml 中找到 strings_config.xml 這個文件,文件內容以下:
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!-- PLEASE KEEP THIS App ID IN SAFE PLACE -->
    <!-- Get your own App ID at https://dashboard.agora.io/ -->
    <!-- After you entered the App ID, remove <##> outside of Your App ID -->
    <!-- For formal released project, please use Dynamic Key
        https://docs.agora.io/en/2.3.1/product/Video/Agora%20Platform/key_native?platform=Android -->
    <string name="agora_app_id"><#YOUR APP ID#></string>
</resources>
複製代碼

以後你須要把以前獲取的 App ID 填寫在這裏:post

<string name="agora_app_id"><#YOUR APP ID#></string>
複製代碼
  1. 將你下載的 SDK 包解壓,將其中的 libs 文件夾下的 *.jar 複製到本項目的 Android/Agora-Online-KTV/app/libs 下,其中的 libs 文件夾下的 arm64-v8a/x86/armeabi-v7a 複製到本項目的 Android/Agora-Online-KTV/app/src/main/jniLibs 下。性能

  2. 使用 Android Studio 打開該項目,鏈接 Android 測試設備,編譯並運行。學習

運行環境:
* Android SDK API Level >= 16
* Android Studio 3.1 +
* Android 4.1 或以上支持語音和視頻功能的真機設備
複製代碼

而後進行測試運行就行了。

直接體驗 demo

固然,若是你只想簡單的體驗一下,不想運行代碼。你也能夠直接下載官方提供的 SDK。直接下載安裝 Android apk 安裝包 進行體驗。

成功運行 Demo 後,在界面上輸入頻道名稱並選擇 Broadcaster,等提示 KTV 加載成功後點擊「開始播放」即開始 KTV 演唱。

使用另外一臺設備輸入相同的頻道名並選擇 Audience,即爲觀衆觀看。

示例 App 的 API 流程

下圖是官方提供的示例 App 的 API 流程:

其餘補充

  1. 視頻通話 SDK 徹底兼容語音 SDK 的接口。這一點很方便,節省了不少開發工做。
  2. 能夠經過 VLC 工具,或者 FFmpeg 相關命令查看視頻文件採樣率。本樣例視頻的採樣率是 48000 Hz。
  3. 常見的 8000、16000、32000、44100、48000 Hz 採樣率都支持,因此普適性也很好。
  4. 可使用 FFmpeg 的相關命令,好比把雙音軌視頻 MKV 格式轉化爲 44100 Hz 音頻採樣率的 MP4 格式:ffmpeg -i ~/video.mkv -map 0:v -vcodec mpeg4 -map 0:a -acodec copy -ar 44100 -strict -2 output.mp4

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

相關文章
相關標籤/搜索