声网一块儿 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 使用体验征文大赛 | 掘金技术征文,征文活动正在进行中

相关文章
相关标签/搜索