文档导航 Android
本页目录

Talk SDK for Android 快速接入

概述

游密实时语音SDK(Talk SDK)是游密科技公司旗下的一款专注于为开发者提供实时语音技术和服务的云产品。我们的研发团队来自腾讯,其中不少是拥有10年以上音视频经验的专家,专业专注;我们的服务端节点部署遍布全球,为用户提供高效稳定的实时云服务,且弹性可扩展,真正做到亿级支撑、毫秒级延迟、通话清晰流畅、按需取用,为用户带来优质的通话体验。通过Talk SDK,能够让您轻松实现游戏内语音通话、主播、指挥、组队等多项功能。

四步集成

Step1:注册账号

在游密官网注册游密账号,并登录。

Step2:添加游戏,获取Appkey

在控制台添加游戏,添加成功后 在网页左边的游戏栏会增加一个对应的应用,点击进去就可以获得接入需要的Appkey、Appsecret。

Step3:下载Talk SDK包体

根据游戏使用的游戏引擎与开发语言,在下载入口下载对应的SDK包体。

Step4:调试集成

Android 平台集成Talk SDK:集成方法

单频道自由通话基本流程

先注册回调,初始化返回成功后等待初始化成功事件,再加入频道;收到进房成功后设置麦克风、扬声器及音量增益。同步返回失败或收到失败事件时停止后续步骤。退出时先离房,等待完成后反初始化。

下面的示例代码演示单频道自由通话。替换 AppKey、AppSecret、用户和频道 ID,并完成本平台 SDK 导入及权限配置;回调对象应保持存活。

JAVA
import com.youme.voiceengine.api;
import com.youme.voiceengine.YouMeConst;
import com.youme.voiceengine.MemberChange;
import com.youme.voiceengine.YouMeCallBackInterface;

public class TalkQuickStart implements YouMeCallBackInterface {
    public int start() {
        api.SetCallback(this);
        return api.init("YOUR_APP_KEY", "YOUR_APP_SECRET",
            YouMeConst.YOUME_RTC_SERVER_REGION.RTC_DEFAULT_SERVER, "");
    }
    @Override
    public void onEvent(int event, int error, String room, Object param) {
        if (event == YouMeConst.YouMeEvent.YOUME_EVENT_INIT_OK) {
            int ret = api.joinChannel("user1", "team1", YouMeConst.YouMeUserRole.YOUME_USER_TALKER_FREE, true, false);
            if (ret != 0) { /* 处理同步进房错误。 */ }
        } else if (event == YouMeConst.YouMeEvent.YOUME_EVENT_JOIN_OK) {
            api.setMicrophoneMute(false);
            api.setSpeakerMute(false);
            api.setVolume(70);
        } else if (event == YouMeConst.YouMeEvent.YOUME_EVENT_INIT_FAILED
                || event == YouMeConst.YouMeEvent.YOUME_EVENT_JOIN_FAILED) {
            // 处理 error,停止后续流程。
        }
    }
    @Override
    public void onDetectNetWorkComplete(boolean networkOK, String result) {
        // result 为 JSON:avgRtt(毫秒)、lossPer(0~1)。
    }
    @Override
    public void onMemberChange(String channelID, MemberChange[] changes, boolean isUpdate) {
        // isUpdate=false 为首次查询,true 为增量;userID 为用户 ID,isJoin 表示加入/离开。
    }
    @Override
    public void onBroadcast(int bc, String channel, String param1, String param2, String content) {
        // 抢麦/连麦广播;文本消息仍通过 onEvent 的 YOUME_EVENT_MESSAGE_NOTIFY。
    }
    @Override
    public void onAVStatisticNew(int type, String userID, int value, String param) {
        // 码率/带宽 Bps,音频丢包率千分比,延迟毫秒;按 type 解释。
    }
    @Override
    public void onRequestRestAPI(int requestID, int error, String query, String result) {
        // Java 接口要求的兼容空实现,本手册不提供 REST 接入说明。
    }
}

回调注册方式及基本通话流程见 使用指南,接口的五部分说明见 API 手册。初始化、进房和离房均等待相应完成事件后继续。