You need to enable JavaScript to run this app.
导航

抖音小游戏

最近更新时间2023.08.28 12:05:35

首次发布时间2022.10.21 14:39:47

火山 RTC 抖音小游戏处于 Beta 内测阶段,请通过 RTC 工单 咨询。

你可以使用抖音小游戏中提供的 RTC 能力快速构建你的小程序,实现基本实时语音通话;你也能通过阅读代码,了解语音通话的最佳实践。

前提条件

集成 SDK

步骤1: 创建抖音小游戏项目

在小程序开发者平台创建游戏。选择即玩 Unity&UE 小游戏。

步骤2:(可选)创建Unity项目

如集成到已有 Unity 项目,跳过此步骤。

在 Unity 中,创建新项目。项目模板(Template)选择 2D

步骤3:接入 Stark SDK Unity Tools

RTC 功能已集成在 Stark SDK Unity Tools 中。安装此插件。参考 StarkSDK 文档及安装视频讲解

实现语音通话

基础音视频通话 API 时序图

实现流程

1.(可选)创建用户界面

根据场景需要,为你的项目创建音视频通话的用户界面。我们建议添加以下元素:

  • 房间ID
  • 用户 ID
  • 加入/离开房间按钮

2. 引入命名空间

在用到 SDK API 的文件中引入命名空间。

using StarkSDKSpace;

3. 获取引擎 GetRtcEngine

调用 GetRtcEngine 接口,获取一个引擎示例,以使用 RTC 提供的各种音视频能力。
你需要在该方法中传入以下参数:

参数名类型说明
appIdstring每个应用的唯一标识符。只有使用相同的 appId 生成的实例,才能够进行音视频通信。
RtcEngine = StarkSDK.API.GetRTCEngineManager().GetRtcEngine("appId");

4. 注册RTC回调事件

RtcEngine.OnJoinChannelSuccessEvent += OnJoinChannelSuccess;
RtcEngine.OnUserJoinedEvent += OnUserJoined;
RtcEngine.OnUserOfflineEvent += OnUserOffline;
RtcEngine.OnWarningEvent += OnWarning;
RtcEngine.OnErrorEvent += OnError;

5. 加入房间 JoinChannel

调用 JoinChannel 方法创建/加入房间。
你需要在该方法中传入以下参数:

参数参数类型参数详情。

channelId

string

加入的房间 ID。
房间 ID 为长度在 128 字节以内的非空字符串,支持以下字符集范围:
1. 26 个大写字母 A ~ Z 。
2. 26 个小写字母 a ~ z 。
3. 10 个数字 0 ~ 9 。
4. 下划线 "_",at 符 "@",减号 "-"。

uidstring加入语音频道用户的唯一标识
accessTokenstring动态密钥。用于对进房用户进行鉴权验证。 进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。 使用不同 AppID 的 App 是不能互通的。 请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。
successAction接口调用成功回调
failAction<int, string>接口调用失败回调
public  abstract  void JoinChannel (
    string channelId,  
    string uid,  
    string accessToken,  
    Action success = null,  
    Action<int, string> fail = null);

6. 开始音频采集和发送

进入房间后,你需要开启音频采集和音频流发送,以在通话中使用音频功能。

// 开启音频采集
RtcEngine.EnableLocalAudio();

// 开启音频发送
RtcEngine.UnMuteLocalAudioStream();

7. 离开房间 LeaveChannel

在结束通话等场景下,调用 LeaveChannel 离开房间,结束通话过程,释放所有通话相关的资源。

RtcEngine.LeaveChannel();

8. 销毁引擎 Destroy

在 RTC 引擎实例相关的业务场景全部结束后,你可调用 Destroy 销毁由 GetRtcEngine 所创建引擎实例,并释放所有相关资源。

RtcEngine.Destroy();

至此,我们实现了基本的音视频通话。

运行和发布

参看 StarkContainer 游戏发布