阅读 308

声网一起 KTV 功能初体验 | 掘金技术征文

一起 KTV 是一个很重要,且能体现产品性能的功能,在学习声网 SDK 的时候,看到了一起 KTV 的 GitHub demo,并且官方也给出了相应的文档说明,在此也对我的学习过程做一个简单的记录。

场景描述

“一起KTV” 是一个依附于直播聊天室的娱乐场景。在这个场景中,一个KTV房间里的演唱者给其他人播放 MV 视频,并跟随 MV 唱歌给所有人听。其中:

  • 观众可以上麦,随时与房主进行实时音视频互动;
  • 演唱者随着 MV 唱歌时,可以控制歌曲的切换和暂停;
  • 演唱者也可以单独只播放 MV 文件;
  • 演唱者可以自己调节 MV 伴奏和人声的音量; = 观众可以排麦,当前演唱者结束后由下一位排麦中的人成为演唱者;

其中需要的功能有:

  • 基础的音视频互动直播,包括主播、互动连麦;
  • 本地/在线 MV 文件读取;
  • 将 MV 伴奏和视频发送给其他人;
  • 演唱者人声和 MV 伴奏音乐的混合;

产品架构

声网的“一起KTV”场景方案,提供了这个场景中实时音视频互动直播、MV 文件读取、人声和 MV 伴奏同步、音量控制、播放控制、发送 MV 伴奏和视频数据 等相关功能的解决方案。

整体架构如下图所示:

  1. 演唱者和其他用户一起加入声网频道,实现实时音视频通话,其中当前演唱者和连麦者为主播模式,听众为观众模式;
  2. 演唱者播放本地或者在线的 MV 文件;
  3. MV 文件解码出来的音频帧数据,混音进声网 SDK 采集到的演唱者歌声,并通过声网 SDK 发送到频道中;
  4. MV 文件解码出来的视频帧数据通过声网 SDK 发送到频道中;
  5. 房间内的其他用户通过声网 SDK 接收演唱者的歌声和 MV 数据。

运行 demo

因为我是 Android 用户,所以就进行的 Android demo 体验。

首先,你可以到这里看源码: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 填写在这里:

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

关注下面的标签,发现更多相似文章
评论