文档导航 Harmony
本页目录

Talk SDK for Harmony API接口说明

文档修订:2026-10-19

接口基准:当前 ArkTS YouMeRtcAPI;导入包版本需与实际工程一致。

文档更新时间:2025/02/28

本页各接口按语法、功能、参数说明、返回值、异步回调介绍;无参数、无返回值或无独立异步完成事件时明确标注。返回类型、回调载荷及线程以本平台封装为准。

相关异步/同步处理方法介绍

游密音频引擎鸿蒙SDK提供了ArkTs和C++两套接口,接口调用都会立即返回,凡是本身需要较长耗时的接口调用都会采用异步回调的方式,所有接口都可以在主线程中直接使用。ArkTS 回调通过 N-API 回到注册回调的 JS 执行环境;原生 C++ 回调不保证在 UI 主线程。不要将两套接口的线程约定混为一谈,回调中避免耗时操作。

API调用说明

ArkTs API的调用可通过调用YouMeRtcAPI.Instance().实例方法来直接操作。C++ API的调用可使用IYouMeVoiceEngine::getInstance()->来直接操作。

SDK提供的ArkTs API接口文件位于oh_modules/youme_voice_engine/src/main/ets/components/api.d.ets,C++ API接口文件位于oh_modules/youme_voice_engine/include/IYouMeVoiceEngine.h。

接口使用的基本流程为:

设置回调->初始化->收到初始化成功回调通知->

加入频道->收到加入频道成功回调通知->

设置语音属性->收到语音属性设置回调->

离开频道->反初始化

要确保严格按照上述的顺序使用接口。

安装

两种方法导入HAR包:

1. 手动导入

下载youme_voice_engine_3.0.15.har包,放到⼯程libs中。在⼯程中配置引⽤:

JSON
{
  "dependencies": {
    "@youme/voice_engine": "file:./libs/youme_voice_engine_3.0.15.har"
  }
}

2. ohpm导入

在⼯程中配置:

JSON
{
  "dependencies": {
    "@youme/voice_engine": "3.0.15"
  }
}

运⾏命令:

TEXT
ohpm install @youme/voice_engine

SDK接入说明

  • 添加har依赖

    首选把har文件放在entry模块的libs目录下,并在entry模块oh-package.json5中添加对har静态库的依赖,示例如下:

    JSON
    {
      "license": "",
      "devDependencies": {
      },
      "author": "游密科技(youme.im)",
      "name": "entry",
      "description": "游密实时语音SDK Demo",
      "main": "",
      "version": "1.0.0",
      "dependencies": {
        "@youme/voice_engine": "file:./libs/youme_voice_engine.har"
      }
    }
TEXT

​	添加依赖后,在DevEco Studio中完成工程同步,并在工程目录下执行“ohpm install”安装依赖模块。

- 应用中使用ArkTs代码调用SDK ArkTs API

  1) SDK调用示例 - 设置SDK事件回调和成员列表变更回调:

  ```js
  import { YouMeRtcAPI } from '@youme/voice_engine';

  let curDate = new Date();
  YouMeRtcAPI.Instance().SetEventCallback(
    (event, errCode, channel, param) => {
      const ctx = getContext(this)
      ctx.eventHub.emit("youme_event", event, errCode, channel, param)
    }
  );
  this.sdkEventInfo += `${curDate.toLocaleTimeString()} 【api】设置事件回调\n`

  YouMeRtcAPI.Instance().SetMemberChangeCallback(
    (channel, members, isUpdate) => {
      const ctx = getContext(this)
      ctx.eventHub.emit("youme_members", channel, members, isUpdate)
    }
  );
  this.sdkEventInfo += `${curDate.toLocaleTimeString()} 【api】设置成员列表回调\n`
  1. SDK调用示例 - 初始化SDK:
JS
import { YouMeRtcAPI } from '@youme/voice_engine';

const promise = new Promise<number>((resolve, reject) => {
  let error = YouMeRtcAPI.Instance().Init(this.appCustom.appKey, this.appCustom.appSecret, this.selectedRegion, "");
	if (error == 0) {
		resolve(error);
	} else {
		reject(new Error("error call failed"));
	}
});

promise
	.then(result => {
		hilog.info(logFlag, logTag, `call init sdk succ:${result} region:${this.selectedRegion}`);
	})
	.catch((e: Error) => {
		hilog.error(logFlag, logTag, `call init sdk err:${e.message} zone:${this.selectedRegion}`);
	});
  1. SDK调用示例 - 监听SDK事件:
JS
import { YouMeRtcErrorCode, YouMeRtcEvent } from '@youme/voice_engine';

eventLister: Function = (event:YouMeRtcEvent, err:YouMeRtcErrorCode, channel:string, param:string) => {
  let curDate = new Date();
  switch (event){
    case YouMeRtcEvent.YOUME_EVENT_LOCAL_MIC_ON:
    case YouMeRtcEvent.YOUME_EVENT_LOCAL_MIC_OFF:
    case YouMeRtcEvent.YOUME_EVENT_LOCAL_SPEAKER_ON:
    case YouMeRtcEvent.YOUME_EVENT_LOCAL_SPEAKER_OFF:
    case YouMeRtcEvent.YOUME_EVENT_SWITCH_OUTPUT:{
      this.sdkEventInfo += `${curDate.toLocaleTimeString()} 【event】${eventStrings[event]} 错误码:${err} 频道:${channel} 参数:${param}\n`
      break;
    }
    case YouMeRtcEvent.YOUME_EVENT_MY_MIC_LEVEL:{
      this.selfVolumeLevel = err
      break;
    }
    case YouMeRtcEvent.YOUME_EVENT_FAREND_VOICE_LEVEL:{
      this.farendVolumeLevel = err
      this.farendUser = param
      break;
    }
    case YouMeRtcEvent.YOUME_EVENT_OTHERS_VOICE_ON:{
      this.sdkEventInfo += `${curDate.toLocaleTimeString()} 【vad】${eventStrings[event]} 用户${param}开始说话\n`
      break;
    }
    case YouMeRtcEvent.YOUME_EVENT_OTHERS_VOICE_OFF:{
      this.sdkEventInfo += `${curDate.toLocaleTimeString()} 【vad】${eventStrings[event]} 用户${param}停止说话\n`
      break;
    }
    case YouMeRtcEvent.YOUME_EVENT_PAUSED: {
      this.sdkEventInfo += `${curDate.toLocaleTimeString()} 【vad】${eventStrings[event]} 通话暂停${err}\n`
      break;
    }
    case YouMeRtcEvent.YOUME_EVENT_RESUMED: {
      this.sdkEventInfo += `${curDate.toLocaleTimeString()} 【vad】${eventStrings[event]} 通话恢复${err}\n`
      break;
    }
    case YouMeRtcEvent.YOUME_EVENT_OTHERS_MIC_ON: {
      this.sdkEventInfo += `${curDate.toLocaleTimeString()} 【event】${eventStrings[event]} 用户${param}麦克风开启\n`
      break;
    }
    case YouMeRtcEvent.YOUME_EVENT_OTHERS_MIC_OFF: {
      this.sdkEventInfo += `${curDate.toLocaleTimeString()} 【event】${eventStrings[event]} 用户${param}麦克风关闭\n`
      break;
    }
    case YouMeRtcEvent.YOUME_EVENT_OTHERS_SPEAKER_ON: {
      this.sdkEventInfo += `${curDate.toLocaleTimeString()} 【event】${eventStrings[event]} 用户${param}扬声器开启\n`
      break;
    }
    case YouMeRtcEvent.YOUME_EVENT_OTHERS_SPEAKER_OFF: {
      this.sdkEventInfo += `${curDate.toLocaleTimeString()} 【event】${eventStrings[event]} 用户${param}扬声器关闭\n`
      break;
    }
    default:{
      break;
    }
  }
}
  • 应用中使用C++代码调用SDK C++ API
  1. 调用SDK C++ API,需要先在Native C++代码的CMakeList.txt中配置依赖的SDK头文件和库文件路径,示例如下:
CMAKE
  # the minimum version of CMake.
  cmake_minimum_required(VERSION 3.5.0)
  project(entry)
  set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR})

  if(DEFINED PACKAGE_FIND_FILE)
      include(${PACKAGE_FIND_FILE})
  endif()

  include_directories(${NATIVERENDER_ROOT_PATH}
                      ${NATIVERENDER_ROOT_PATH}/include
                      ${CMAKE_CURRENT_SOURCE_DIR}/../../../oh_modules/@youme/voice_engine/include)
  set(YOUME_LIB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../oh_modules/@youme/voice_engine/libs)

  link_directories(${YOUME_LIB_PATH}/${CMAKE_OHOS_ARCH_ABI})
  add_library(entry SHARED napi_init.cpp youme_native.cpp)

  target_link_libraries(entry PUBLIC libyoume_voice_engine.so libace_napi.z.so libhilog_ndk.z.so)
  1. 应用C++代码引入SDK头文件即可调用C++ API。
C++
  #include "IYouMeVoiceEngine.h"
  #include "IYouMeEventCallback.h"
  #include "YouMeConstDefine.h"

  // 定义SDK回调监听类
  class YouMeCallback:
      public IYouMeEventCallback,
      public
      public IYouMeMemberChangeCallback,
      public IYouMeAVStatisticNewCallback,
      public IYouMeChannelMsgCallback,
      public IYouMePcmCallback,
      public IYouMeDetectNetworkCallback
  {
  public:
      void onEvent(const YouMeEvent event, const YouMeErrorCode error, const char * channel, const char * param);
      void onRequestRestAPI(int requestID, const YouMeErrorCode &iErrorCode, const char* strQuery, const char* strResult);
      void onDetectNetWorkCompleteCb(bool bNetworkOK, const char*  strResult);
      void onAVStatisticNew(YouMeAVStatisticType type, const char* userID, int value, const char* param);
      void onMemberChange(const char*  channel, const char* listMemberChange, bool bUpdate);
      void onBroadcast(const YouMeBroadcast bc, const char*  channel, const char*  param1, const char*  param2, const char*  strContent);
      void onPcmDataRemote(int channelNum, int samplingRateHz, int bytesPerSample, void* data, int dataSizeInByte);
      void onPcmDataRecord(int channelNum, int samplingRateHz, int bytesPerSample, void* data, int dataSizeInByte);
      void onPcmDataMix(int channelNum, int samplingRateHz, int bytesPerSample, void* data, int dataSizeInByte);
  };

  // 设置回调
  YouMeCallback* inst = new YouMeCallback();
  IYouMeVoiceEngine::getInstance()->setMemberChangeCallback(inst);
  IYouMeVoiceEngine::getInstance()->setNotifyCallback(inst);
  IYouMeVoiceEngine::getInstance()->setDetectNetworkCallback(inst);
  IYouMeVoiceEngine::getInstance()->setAVStatisticNewCallback(inst);

  // 初始化SDK
  YouMeErrorCode ec = IYouMeVoiceEngine::getInstance()->init(inst, appKey, appSecret, (YOUME_RTC_SERVER_REGION)serverRegion, extServerRegion);

回调注册与设置

本节集中介绍通用事件、网络检测、音频统计、成员变更、房间广播及 PCM 数据回调的注册与设置。通用事件回调需在初始化之前注册;其余回调的设置时机及接收方式见各接口说明。

注册SDK事件监听回调

  • 语法
TypeScript
SetEventCallback(callback: (event: YouMeRtcEvent, errCode: YouMeRtcErrorCode, channel: string, param: string) => void): void;
  • 功能

注册SDK事件监听回调,需SDK初始化之前设置

  • 参数说明

callback:SDK事件监听回调,事件回调包含事件类型、错误码、频道号、参数信息

  • 返回值

无(void)。

  • 异步回调

注册/解绑操作没有独立完成事件;SDK 在相应事件或数据产生时通过语法指定的回调接口通知。回调线程及载荷见本页回调说明。

设置网络质量检测结果回调

  • 语法
TypeScript
SetDetectNetworkCallback(cb: (isNetworkOK: boolean, result: string) => void): void;
  • 功能

设置网络质量检测结果回调

  • 参数说明

cb:网络质量检测结果回调。 isNetworkOK - 检测网络是否可用,目前如果lossPer<=0.2并且avgRtt<400,就认为网络是可用的,并且这两个阈值将支持服务器动态下发控制。 result - 检测的结果值,json格式,包含avgRtt(平均往返延迟,整型,单位毫秒)和lossPer(丢包率,浮点型,范围0.0~1.0),示例:{"avgRtt":39,"lossPer":0}。

  • 返回值

无(void)。

  • 异步回调

注册/解绑操作没有独立完成事件;SDK 在相应事件或数据产生时通过语法指定的回调接口通知。回调线程及载荷见本页回调说明。

设置Audio统计数据监听回调

  • 语法
TypeScript
SetAVStatisticCallback(callback: (statType: YouMeRtcAVStatisticType, user: string, value: number, param: string) => void): void;
  • 功能

设置Audio统计数据监听回调

  • 参数说明

callback:Audio统计数据监听回调

  • 返回值

无(void)。

  • 异步回调

注册/解绑操作没有独立完成事件;SDK 在相应事件或数据产生时通过语法指定的回调接口通知。回调线程及载荷见本页回调说明。

注册频道成员变更监听回调

  • 语法
TypeScript
SetMemberChangeCallback(callback: (channel: string, members: string, update: boolean) => void): void;
  • 功能

注册语音频道成员变更监听回调,需在sdk查询频道用户列表之前设置(getChannelUserList时需设置notifyMemChange为true才会触发MemberChange回调)

  • 参数说明

callback:语音频道成员变更监听回调

  • 返回值

无(void)。

  • 异步回调

注册/解绑操作没有独立完成事件;SDK 在相应事件或数据产生时通过语法指定的回调接口通知。回调线程及载荷见本页回调说明。

设置频道内的广播消息回调

  • 语法
TypeScript
SetChannelBroadcastCallback(cb: (broadcast: YouMeRtcBroadcast, channel: string, param1: string, param2: string, content: string) => void): void;
  • 功能

设置频道内的广播消息回调(抢麦、连麦等)

  • 参数说明

cb:频道内的广播消息回调

  • 返回值

无(void)。

  • 异步回调

注册/解绑操作没有独立完成事件;SDK 在相应事件或数据产生时通过语法指定的回调接口通知。回调线程及载荷见本页回调说明。

设置音频pcm数据监听回调

  • 语法
TypeScript
SetPcmCallbackEnable(callbacks: ((channelNum: number, samplingRateHz: number, bytesPerSample: number, data: ArrayBuffer) => void)[],
  flag: number, outputToSpeaker: boolean, outputSampleRate: number, outputChannel: number): YouMeRtcErrorCode;
  • 功能

设置是否开启音频pcm回调,以及开启哪种类型的pcm回调。 本接口可以在加入房间前,或者加入房间后调用。

  • 参数说明

callbacks:音频pcm回调数组,需按顺序设置远端音频回调,录音音频回调,以及远端和录音数据的混合音频回调

flag:说明需要哪些类型的音频回调,取值参考YouMeRtcPcmCallBackFlag定义,比如PCMCALLBACK_FLAG_REMOTE|PCMCALLBACK_FLAG_RECORD|PCMCALLBACK_FLAG_MIX

outputToSpeaker:是否扬声器静音:true-不静音,false-静音

outputSampleRate:音频回调数据的采样率: 8000/16000/32000/44100/48000/64000

outputChannel:音频回调数据的通道数:1-单通道,2-立体声

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

启用后通过本平台 PCM 回调接收远端、录音、混合数据,按 flag 区分。指针仅在回调期间有效,异步使用前复制;回调中避免耗时操作。

初始化引擎

  • 语法
TypeScript
Init(appKey: string, appSecret: string, serverRegion: YouMeRtcServerRegion, extServerRegionName: string): YouMeRtcErrorCode;
  • 功能

初始化引擎 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待以下事件回调才表明初始化完成: YOUME_EVENT_INIT_OK,表明初始化成功 YOUME_EVENT_INIT_FAILED,表明初始化失败,最常见的失败原因是网络错误或者 AppKey/AppSecret 错误

  • 参数说明

appKey:从游密申请到的app key, 应用程序的唯一标识

appSecret:应用app key的私钥, 需要妥善保存,不要暴露给其他人

serverRegion:首选连接服务器的区域码,如果在初始化时不能确定区域,可以填RTC_DEFAULT_SERVER

extServerRegionName:扩展的服务器区域简称

  • 返回值

返回 YouMeRtcErrorCode,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_INIT_OK:初始化成功,此后才能加入频道。
  • YOUME_EVENT_INIT_FAILED:初始化失败,常见原因包括网络或 AppKey/AppSecret 错误。

设置服务器区域

  • 语法
TypeScript
SetServerRegion(region: YouMeRtcServerRegion, extName: string, append: boolean): void;
  • 功能

设置首选连接区域。初始区域通常通过初始化接口参数指定;需要调整时,等待初始化成功后、加入频道前调用。初始化前单独调用区域设置接口不会生效。 所有参数及是否支持追加区域按本平台语法传入。

  • 参数说明

region:服务器区域

extName:设置一个自定的区域值(如中国用"cn"或者"ch"表示),然后把这个自定义的区域值同步给游密,游密在后台配置映射到最佳区域的服务器

append:是否追加

  • 返回值

无(void)。

  • 异步回调

无。本接口不单独返回异步完成通知。

设置身份验证的token和用户加入房间的时间

  • 语法
TypeScript
SetTokenV3(token: string, timeStamp: number): void;
  • 功能

设置身份验证的token和用户加入房间的时间

  • 参数说明

token:身份验证用token,设置为空字符串,清空token值

timeStamp:用户加入房间的时间戳,秒单位

  • 返回值

无(void)。

  • 异步回调

无。本接口不单独返回异步完成通知。

语音频道管理

加入语音频道

  • 语法
TypeScript
JoinChannel(user: string, channel: string, role: YouMeRtcUserRole, singleMode: boolean, checkExists: boolean): YouMeRtcErrorCode;
  • 功能

显式传 singleMode:true 为单频道,false 为多频道;checkExists 为 true 时只加入存在的频道。

  • 参数说明

user:用户 ID,在当前应用内唯一。

channel:频道 ID,在当前应用内唯一。

role:用户角色,使用本平台角色类型/常量,不能传无效角色。

singleMode:true 为单频道,加入时退出其他频道;false 为多频道,可用指定讲话频道接口选择讲话目标。

checkExists:true 只加入已存在的频道;false 不要求预先存在。

  • 返回值

返回成功后等待 YOUME_EVENT_JOIN_OK / YOUME_EVENT_JOIN_FAILED。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_JOIN_OK:加入频道成功。
  • YOUME_EVENT_JOIN_FAILED:加入频道失败,按 err 处理原因。

多频道模式下,指定当前要讲话的频道

  • 语法
TypeScript
SpeakToChannel(channel: string): YouMeRtcErrorCode;
  • 功能

多频道模式下,指定当前要讲话的频道 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待以下事件回调才表示切换频道完成: YOUME_EVENT_SPEAK_SUCCESS,成功切入到指定语音频道 YOUME_EVENT_SPEAK_FAILED,切入指定语音频道失败,可能原因是网络或服务器有问题

  • 参数说明

channel:当前应用程序的范围内唯一的频道标识

  • 返回值

返回 YouMeRtcErrorCode,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_SPEAK_SUCCESS:成功切换到指定讲话频道。
  • YOUME_EVENT_SPEAK_FAILED:切换失败,按 err 处理网络或服务端等原因。

多频道模式下,退出指定的语音频道

  • 语法
TypeScript
LeaveChannel(channel: string): YouMeRtcErrorCode;
  • 功能

多频道模式下,退出指定的语音频道

  • 参数说明

channel:当前应用程序的范围内唯一的频道标识 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待以下事件回调才表示退出频道完成: YOUME_EVENT_LEAVED_ONE,成功退出指定语音频道

  • 返回值

返回 YouMeRtcErrorCode,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_LEAVED_ONE:已退出指定频道。

退出所有的语音频道

  • 语法
TypeScript
LeaveChannelAll(): YouMeRtcErrorCode;
  • 功能

退出所有的语音频道(单频道模式下直接调用此函数离开频道即可) 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待以下事件回调才表示退出频道完成: YOUME_EVENT_LEAVED_ALL,成功退出所有语音频道

  • 参数说明

无。

  • 返回值

返回 YouMeRtcErrorCode,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_LEAVED_ALL:已退出全部频道。

设置当前用户的语音消息接收白名单

  • 语法
TypeScript
SetWhiteUserList(channel: string, whiteUserList: string): YouMeRtcErrorCode;
  • 功能

设置当前用户的语音消息接收白名单,其语音消息只会转发到白名单的用户,不设置该接口则默认转发至频道内所有人 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待以下事件回调才表示设置完成: YOUME_EVENT_SET_WHITE_USER_LIST_OK,成功在指定语音频道设置白名单,有异常用户会返回错误码YOUME_ERROR_WHITE_SOMEUSER_ABNORMAL YOUME_EVENT_SET_WHITE_USER_LIST_FAILED,在指定语音频道设置白名单失败,可能原因是网络或服务器有问题

  • 参数说明

channel:要设置的频道(兼容多频道模式)

whiteUserList:白名单用户列表, 以|分隔,如:User1|User2;表示语音消息只发送到User1,User2. "all"表示转发至频道内所有人;设置为自己表示不转发至任何用户

  • 返回值

返回 YouMeRtcErrorCode,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_SET_WHITE_USER_LIST_OK:白名单设置完成;存在异常用户时 err 可为 YOUME_ERROR_WHITE_SOMEUSER_ABNORMAL。
  • YOUME_EVENT_SET_WHITE_USER_LIST_FAILED:设置失败。

设置黑名单用户

  • 语法
TypeScript
SetListenOtherVoice(user: string, on: boolean): YouMeRtcErrorCode;
  • 功能

设置指定用户的语音接收黑名单状态,控制本机是否接收该用户的语音。

  • 参数说明

user:要设置黑名单状态的用户 ID。

on:false 将指定用户加入语音接收黑名单,屏蔽该用户的语音;true 将其移出黑名单,恢复接收其语音。

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

没有本次设置的独立完成事件。相关屏蔽状态通知使用 YOUME_EVENT_LISTEN_OTHER_ON / YOUME_EVENT_LISTEN_OTHER_OFF,按通用事件定义处理。

切换用户身份

  • 语法
TypeScript
SetUserRole(role: YouMeRtcUserRole): YouMeRtcErrorCode;
  • 功能

切换用户身份(仅支持单频道模式,需进入房间以后设置) 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待以下事件回调: YOUME_EVENT_IDENTITY_MODIFY,角色改变事件,此事件的errCode代表角色类型,对应YouMeRtcUserRole定义

  • 参数说明

role:新的用户角色,详见YouMeRtcUserRole定义

  • 返回值

返回 YouMeRtcErrorCode,YOUME_SUCCESS 表示本次调用成功;其他值表示失败,参见 错误码定义。

  • 异步回调

通过 SetEventCallback 注册的函数 接收 YOUME_EVENT_IDENTITY_MODIFY;错误字段携带角色值,应按本平台角色类型解释,不作为错误码。

获取用户身份

  • 语法
TypeScript
GetUserRole(): YouMeRtcUserRole;
  • 功能

功能描述:获取用户身份(仅支持单频道模式)

  • 参数说明

无。

  • 返回值

同步返回本平台用户角色枚举/角色值,不是错误码。仅支持单频道,应在进房成功后查询。

  • 异步回调

无。本接口不单独返回异步完成通知。

设置频道收听黑名单

  • 语法
TypeScript
BlockChannels(channels: string[]): YouMeRtcErrorCode;
  • 功能

多频道模式下设置完整的频道收听黑名单,空数组清除。

  • 参数说明

channels:完整的频道收听黑名单;传频道 ID 数组,空数组清空。

  • 返回值

同步返回成功后处理 YOUME_EVENT_BLOCK_CHANNELS 事件。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_BLOCK_CHANNELS:频道黑名单设置结果;err=YOUME_SUCCESS 表示成功,其他值按错误码处理。

查询用户是否在某个语音频道内

  • 语法
TypeScript
IsInChannel(channel: string): boolean;
  • 功能

查询用户是否在某个语音频道内

  • 参数说明

channel:当前应用程序的范围内唯一的频道标识

  • 返回值

返回true-在指定频道内,返回false-没有在指定频道内

  • 异步回调

无。本接口不单独返回异步完成通知。

查询用户是否在语音频道内

  • 语法
TypeScript
IsInAnyChannel(): boolean;
  • 功能

查询用户是否在语音频道内

  • 参数说明

无。

  • 返回值

返回true-在频道内,返回false-没有在频道内

  • 异步回调

无。本接口不单独返回异步完成通知。

查询频道当前的用户列表

  • 语法
TypeScript
GetChannelUserList(channel: string, maxCount: number, notifyMemChange: boolean): YouMeRtcErrorCode;
  • 功能

查询频道当前的用户列表,并设置是否获取频道用户进出的通知(OnMemberChange),必须自己在频道中才可以调用此接口 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待IYouMeMemberChangeCallback回调获取查询结果

  • 参数说明

channel:当前应用程序的范围内唯一的频道标识

maxCount:想要获取的最大人数。-1表示获取全部列表

notifyMemChange:其他用户进出房间时,是否要收到通知,设置为true表示自己所在频道有人进出都会有回调产生,反之false就没有对应回调

  • 返回值

返回YOUME_SUCCESS才会有异步查询结果回调通知,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

通过 SetMemberChangeCallback 注册的函数接收,update=false 为首次查询,true 为增量。

把人踢出频道

  • 语法
TypeScript
KickOtherFromChannel(user: string, channel: string, lastTime: number): YouMeRtcErrorCode;
  • 功能

把人踢出频道 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待以下事件回调: YOUME_EVENT_KICK_RESULT,发送踢人消息的结果回调,param为被踢者ID。被踢的人会自动退出所在频道,并收到YOUME_EVENT_KICK_NOTIFY事件通知,param(踢人者ID,被踢原因,被禁时间)

  • 参数说明

user:被踢的用户ID

channel:从哪个频道踢出(自己需要在频道内)

lastTime:踢出后,多长时间内不允许再次进入(单位:秒)

  • 返回值

返回 YouMeRtcErrorCode,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_KICK_RESULT:踢人方收到操作结果,param 为被踢者 ID。
  • YOUME_EVENT_KICK_NOTIFY:被踢方收到通知并退出频道;param 携带踢人者 ID、原因及被禁时长。

设备状态管理

设置声音输出到扬声器/听筒

  • 语法
TypeScript
SetOutputToSpeaker(outputToSpeaker: boolean): YouMeRtcErrorCode;
  • 功能

设置声音输出到扬声器/听筒,在加入房间成功后设置 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待以下事件回调: YOUME_EVENT_SWITCH_OUTPUT,音频输出切换结果回调

  • 参数说明

outputToSpeaker:true-输出到扬声器,false-输出到听筒

  • 返回值

返回 YouMeRtcErrorCode,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_SWITCH_OUTPUT:语音输出设备切换结果,按 err 判断。

打开/关闭扬声器

  • 语法
TypeScript
SetSpeakerMute(mute: boolean): void;
  • 功能

设置本机扬声器静音状态,加入频道成功后配置;设备状态异步生效。

  • 参数说明

mute:true-关闭扬声器,false-开启扬声器

  • 返回值

无(void)。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_LOCAL_SPEAKER_ON:本机扬声器开启状态通知,按 err 判断结果。
  • YOUME_EVENT_LOCAL_SPEAKER_OFF:本机扬声器关闭状态通知,按 err 判断结果。

获取当前扬声器状态

  • 语法
TypeScript
GetSpeakerMute(): boolean;
  • 功能

同步读取 SDK 当前设备静音状态配置。设备开关异步生效,设置后立即查询不代表硬件已完成切换。

  • 参数说明

无。

  • 返回值

true 表示设备静音/关闭,false 表示开启。读取 SDK 当前状态,不保证硬件已完成切换。

  • 异步回调

无。本接口不单独返回异步完成通知。

打开/关闭麦克风

  • 语法
TypeScript
SetMicMute(mute: boolean): void;
  • 功能

设置本机麦克风静音状态,加入频道成功后配置;设备状态异步生效。

  • 参数说明

mute:true-关闭麦克风,false-开启麦克风

  • 返回值

无(void)。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_LOCAL_MIC_ON:本机麦克风开启状态通知,按 err 判断结果。
  • YOUME_EVENT_LOCAL_MIC_OFF:本机麦克风关闭状态通知,按 err 判断结果。

获取当前麦克风状态

  • 语法
TypeScript
GetMicMute(): boolean;
  • 功能

同步读取 SDK 当前设备静音状态配置。设备开关异步生效,设置后立即查询不代表硬件已完成切换。

  • 参数说明

无。

  • 返回值

true 表示设备静音/关闭,false 表示开启。读取 SDK 当前状态,不保证硬件已完成切换。

  • 异步回调

无。本接口不单独返回异步完成通知。

设置是否通知别人自己麦克风和扬声器的开关状态

  • 语法
TypeScript
SetAutoSendStatus(autoSend: boolean): void;
  • 功能

设置是否通知别人自己麦克风和扬声器的开关状态,打开设置后在同一个频道的其他用户可以获取该用户的麦克风和扬声器的开关状态 回调对应事件: YOUME_EVENT_OTHERS_MIC_ON YOUME_EVENT_OTHERS_MIC_OFF YOUME_EVENT_OTHERS_SPEAKER_ON YOUME_EVENT_OTHERS_SPEAKER_OFF

  • 参数说明

autoSend:设置true表示通知别人自己麦克风和扬声器的开关状态,设置false表示不通知

  • 返回值

无(void)。

  • 异步回调

设置本身没有独立完成事件;开启后同频道其他用户可接收 YOUME_EVENT_OTHERS_MIC_ON/OFF、YOUME_EVENT_OTHERS_SPEAKER_ON/OFF 状态通知。

设置扬声器音量增益

  • 语法
TypeScript
SetVolume(volume: number): void;
  • 功能

设置扬声器音量增益,实际扬声器音量 = 扬声器音量增益 x 系统音量;百分比 100 对应乘法系数 1。

  • 参数说明

volume:音量大小,范围[0-100]

  • 返回值

无(void)。

  • 异步回调

无。本接口不单独返回异步完成通知。

获取扬声器音量增益

  • 语法
TypeScript
GetVolume(): number;
  • 功能

获取 SDK 当前扬声器音量增益。实际扬声器音量 = 扬声器音量增益 x 系统音量;100% 增益对应乘法系数 1。

  • 参数说明

无。

  • 返回值

返回 SDK 当前扬声器音量增益,范围 0~100(百分比),不是实际扬声器音量。

  • 异步回调

无。本接口不单独返回异步完成通知。

设置房间内某成员音量

  • 语法
TypeScript
SetUserVolume(user: string, volume: number): YouMeRtcErrorCode;
  • 功能

设置房间内某成员的说话音量大小,仅在本端生效;本端退出频道时失效,被调节成员进出频道可保持有效。

  • 参数说明

user:被调节的用户id

volume:音量大小,范围[0-300]

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

无。本接口不单独返回异步完成通知。

控制他人的麦克风状态

  • 语法
TypeScript
SetOtherMicMute(user: string, status: boolean): YouMeRtcErrorCode;
  • 功能

控制他人的麦克风状态(也就是关闭或者开启他人的麦克风)

  • 参数说明

user:要控制的用户ID

status:true-静音别人的麦克风,false-开启别人的麦克风

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

没有调用方的独立完成事件;被控制端通过通用事件 YOUME_EVENT_MIC_CTR_ON / YOUME_EVENT_MIC_CTR_OFF 接收麦克风控制通知。

控制他人的扬声器状态

  • 语法
TypeScript
SetOtherSpeakerMute(user: string, status: boolean): YouMeRtcErrorCode;
  • 功能

控制他人的扬声器状态(也就是关闭或者开启他人的扬声器)

  • 参数说明

user:要控制的用户ID

status:true-静音别人的扬声器,false-开启别人的扬声器

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

没有调用方的独立完成事件;被控制端通过通用事件 YOUME_EVENT_SPEAKER_CTR_ON / YOUME_EVENT_SPEAKER_CTR_OFF 接收扬声器控制通知。

设置当麦克风静音时,是否释放麦克风设备

  • 语法
TypeScript
SetReleaseMicWhenMute(enabled: boolean): YouMeRtcErrorCode;
  • 功能

设置当麦克风静音时,是否释放麦克风设备

  • 参数说明

enabled:true-当麦克风静音时,释放麦克风设备,此时允许第三方模块使用麦克风设备录音;false-不管麦克风是否静音,麦克风设备都会被占用。

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

无。本接口不单独返回异步完成通知。

释放麦克风

  • 语法
TypeScript
ReleaseMicSync(): boolean;
  • 功能

调用后完成麦克风释放,只是为了方便使用IM的录音接口时切换麦克风使用权

  • 参数说明

无。

  • 返回值

返回true,表示释放成功,可以认为只要在占用麦克风的状态肯定能释放成功

  • 异步回调

无。本接口不单独返回异步完成通知。

恢复麦克风

  • 语法
TypeScript
ResumeMicSync(): boolean;
  • 功能

调用后恢复麦克风到释放前的状态,只是为了方便使用IM的录音接口时切换麦克风使用权

  • 参数说明

无。

  • 返回值

返回true,表示恢复成功,可以认为只要在释放的状态,肯定可以恢复成功

  • 异步回调

无。本接口不单独返回异步完成通知。

说话及音量检测

设置语音检测

  • 语法
TypeScript
SetVadCallbackEnabled(enabled: boolean): YouMeRtcErrorCode;
  • 功能

设置是否开启语音检测回调,开启后频道内有人正在讲话与结束讲话都会发起相应回调通知 (需要游密后台配置开启,该状态值在加入房间成功后设置才有效,并且需要频道内所有用户都设置才生效) 开启成功后用户收到的回调事件有: YOUME_EVENT_OTHERS_VOICE_ON,用户进入讲话状态 YOUME_EVENT_OTHERS_VOICE_OFF,用户进入静默状态

  • 参数说明

enabled:true-打开,false-关闭

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_OTHERS_VOICE_ON:其他用户进入讲话状态。
  • YOUME_EVENT_OTHERS_VOICE_OFF:其他用户进入静默状态。

设置本地讲话音量级别回调

  • 语法
TypeScript
SetMicLevelCallback(maxLevel: number): YouMeRtcErrorCode;
  • 功能

设置是否开启监听自己讲话音量回调, 并设置相应的参数 开启成功后用户收到的回调事件有: YOUME_EVENT_MY_MIC_LEVEL

  • 参数说明

maxLevel:音量最大时对应的级别,需大于1,最大可设100。比如你只在UI上呈现10级的音量变化,那就设10就可以了。设0表示关闭回调。

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_MY_MIC_LEVEL:本机讲话音量级别;读取错误字段的整数业务数值 读取音量值,不按错误码判断。

设置远端讲话音量级别回调

  • 语法
TypeScript
SetFarendVoiceLevelCallback(maxLevel: number, maxMixedLevel: number): YouMeRtcErrorCode;
  • 功能

设置是否开启远端讲话音量级别回调, 并设置相应的参数 开启成功后用户收到的回调事件有: YOUME_EVENT_FAREND_VOICE_LEVEL

  • 参数说明

maxLevel:单个用户音量对应的最大级别,需大于1,最大可设100。比如你只在UI上呈现10级的音量变化,那就设10就可以了。设0表示关闭回调

maxMixedLevel:有远端用户音量混音后对应的最大级别,需大于1,最大可设100。比如你只在UI上呈现10级的音量变化,那就设10就可以了。设0表示关闭回调。

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

通过 SetEventCallback 注册的函数 接收 YOUME_EVENT_FAREND_VOICE_LEVEL。错误字段携带音量级别;单个用户通知的 param 为用户 ID,混合音量通知的 param 为空。

通话控制

暂停通话

  • 语法
TypeScript
PauseChannel(): YouMeRtcErrorCode;
  • 功能

暂停通话,释放对麦克风等设备资源的占用 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待以下事件回调才表示频道暂停完成: YOUME_EVENT_PAUSED,暂停语音频道完成

  • 参数说明

无。

  • 返回值

返回 YouMeRtcErrorCode,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_PAUSED:暂停语音频道完成。

恢复通话

  • 语法
TypeScript
ResumeChannel(): YouMeRtcErrorCode;
  • 功能

恢复通话,调用PauseChannel暂停通话后,可调用这个接口恢复通话 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待以下事件回调才表示频道恢复完成: YOUME_EVENT_RESUMED,恢复语音频道完成

  • 参数说明

无。

  • 返回值

返回 YouMeRtcErrorCode,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_RESUMED:恢复语音频道完成。

抢麦连麦

抢麦相关设置

  • 语法
TypeScript
SetGrabMicOption(channel: string, mode: number, maxAllowCount: number, maxTalkTime: number, voteTime: number): YouMeRtcErrorCode;
  • 功能

抢麦相关设置(抢麦活动发起前调用此接口进行设置)

  • 参数说明

channel:抢麦活动的频道id

mode:抢麦模式(1:先到先得模式;2:按权重分配模式)。先到先得模式中,抢麦活动会持续,用户可以继续抢其他用户释放的麦

maxAllowCount:允许能抢到麦的最大人数(要大于0)

maxTalkTime:允许抢到麦后使用麦的最大时间(单位:秒,要大于0)

voteTime:抢麦仲裁时间(单位:秒,要大于0),过了指定时间后服务器将进行仲裁谁最终获得麦(仅在按权重分配模式下有效)

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

无。本接口不单独返回异步完成通知。

发起抢麦活动

  • 语法
TypeScript
StartGrabMicAction(channel: string, content: string): YouMeRtcErrorCode;
  • 功能

发起抢麦活动。接口需要加入房间后再调用

  • 参数说明

channel:抢麦活动的频道id

content:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_GRABMIC_START_OK:发起抢麦活动成功。
  • YOUME_EVENT_GRABMIC_START_FAILED:发起失败。
  • YOUME_EVENT_GRABMIC_NOTIFY_START:频道内的抢麦活动开始通知。

停止抢麦活动

  • 语法
TypeScript
StopGrabMicAction(channel: string, content: string): YouMeRtcErrorCode;
  • 功能

停止抢麦活动

  • 参数说明

channel:抢麦活动的频道id

content:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_GRABMIC_STOP_OK:停止抢麦活动成功。
  • YOUME_EVENT_GRABMIC_STOP_FAILED:停止失败。
  • YOUME_EVENT_GRABMIC_NOTIFY_STOP:频道内的抢麦活动结束通知。

发起抢麦请求

  • 语法
TypeScript
RequestGrabMic(channel: string, score: number, isAutoOpenMic: boolean, content: string): YouMeRtcErrorCode;
  • 功能

发起抢麦请求

  • 参数说明

channel:抢麦的频道id

score:积分(权重分配模式下有效,游戏根据自己实际情况设置)

isAutoOpenMic:抢麦成功后是否自动开启麦克风权限

content:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_GRABMIC_REQUEST_OK:抢麦成功,可以讲话。
  • YOUME_EVENT_GRABMIC_REQUEST_FAILED:抢麦失败。
  • YOUME_EVENT_GRABMIC_REQUEST_WAIT:进入等待队列,仅权重模式产生。
  • YOUME_EVENT_GRABMIC_ENDMIC:因使用时长到期或其他原因不再占用麦。

释放抢到的麦

  • 语法
TypeScript
ReleaseGrabMic(channel: string): YouMeRtcErrorCode;
  • 功能

释放抢到的麦

  • 参数说明

channel:抢麦的频道id

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_GRABMIC_RELEASE_OK:释放麦成功。
  • YOUME_EVENT_GRABMIC_RELEASE_FAILED:释放麦失败。

连麦相关设置

  • 语法
TypeScript
SetInviteMicOption(channel: string, waitTimeout: number, maxTalkTime: number): YouMeRtcErrorCode;
  • 功能

连麦相关设置(角色是频道的管理者或者主播时调用此接口进行频道内的连麦设置)

  • 参数说明

channel:连麦的频道id

waitTimeout:等待对方响应超时时间(秒)

maxTalkTime:最大通话时间(秒)

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_INVITEMIC_SETOPT_OK:连麦设置成功。
  • YOUME_EVENT_INVITEMIC_SETOPT_FAILED:连麦设置失败。

发起与某人的连麦请求

  • 语法
TypeScript
RequestInviteMic(channel: string, user: string, content: string): YouMeRtcErrorCode;
  • 功能

发起与某人的连麦请求(主动呼叫)。支持跨频道发起连麦

  • 参数说明

channel:连麦的频道id

user:被叫方的用户id

content:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_INVITEMIC_REQUEST_OK:请求已发出,仍需等待对方回应。
  • YOUME_EVENT_INVITEMIC_REQUEST_FAILED:请求失败。
  • YOUME_EVENT_INVITEMIC_NOTIFY_ANSWER:对方回应同意、拒绝或超时。
  • YOUME_EVENT_INVITEMIC_CAN_TALK:双方可以通话。

对连麦请求做出回应

  • 语法
TypeScript
ResponseInviteMic(user: string, isAccept: boolean, content: string): YouMeRtcErrorCode;
  • 功能

对连麦请求做出回应(被动应答)

  • 参数说明

user:主叫方的用户id

isAccept:是否同意连麦

content:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_INVITEMIC_RESPONSE_OK:回应请求处理成功;err=YOUME_ERROR_INVITEMIC_REJECT 表示拒绝。
  • YOUME_EVENT_INVITEMIC_RESPONSE_FAILED:回应请求处理失败。
  • YOUME_EVENT_INVITEMIC_CAN_TALK:对方被接受后,双方可以通话。

停止连麦

  • 语法
TypeScript
StopInviteMic(): YouMeRtcErrorCode;
  • 功能

停止连麦

  • 参数说明

无。

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_INVITEMIC_STOP_OK:停止连麦成功。
  • YOUME_EVENT_INVITEMIC_STOP_FAILED:停止连麦失败。
  • YOUME_EVENT_INVITEMIC_CANNOT_TALK:双方已不能继续连麦通话。
  • YOUME_EVENT_INVITEMIC_NOTIFY_CANCEL:对方结束连麦或连麦时长到期的通知。

语音缓存

本组接口用于缓存本机最近的语音,并将缓存保存为本地文件;具体用法及结果回调见各接口说明。

设置缓存自己最近的一段语音时长

  • 语法
TypeScript
SetReportBufferTime(timeInSec: number): YouMeRtcErrorCode;
  • 功能

设置缓存自己最近的一段语音的时长

  • 参数说明

timeInSec:保存语音的时长,秒单位

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

无。本接口不单独返回异步完成通知。

把缓存语音保存为文件

  • 语法
TypeScript
ReportAudio(): YouMeRtcErrorCode;
  • 功能

把缓存自己的最近的一段语音保存为文件 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待以下事件回调: YOUME_EVENT_REPORT_AUDIO,其中param为保存的文件路径

  • 参数说明

无。

  • 返回值

返回 YouMeRtcErrorCode,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。

  • 异步回调

通过 SetEventCallback 注册的函数 接收 YOUME_EVENT_REPORT_AUDIO;param 为本地保存的音频文件路径。

监听(耳返)

用于在本机耳机中监听自己的麦克风声音或战歌,并调节麦克风监听音量。监听音量设置作用于本机监听效果。

设置监听

  • 语法
TypeScript
SetHeadsetMonitorOn(micEnabled: boolean, bgmEnabled: boolean): YouMeRtcErrorCode;
  • 功能

设置是否用耳机监听本机的麦克风声音或战歌。这是一个同步调用接口,进入频道时使用主播/指挥身份才能使用。

  • 参数说明

micEnabled:是否监听麦克风 true-监听,false-不监听。

bgmEnabled:是否监听战歌 true-监听,false-不监听。

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

无。本接口不单独返回异步完成通知。

设置监听麦克风音量

  • 语法
TypeScript
SetMicBypassVolume(volume: number): YouMeRtcErrorCode;
  • 功能

设置本机耳机中的麦克风监听音量,仅影响本机监听效果;发送给房间成员的麦克风音量增益需单独设置。

  • 参数说明

volume:麦克风监听音量,范围 0~100,与扬声器音量增益分别设置。

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

无。本接口不单独返回异步完成通知。

获取监听麦克风音量

  • 语法
TypeScript
GetMicBypassVolume(): number;
  • 功能

获取本机耳机中的麦克风监听音量。

  • 参数说明

无。

  • 返回值

返回麦克风监听音量,范围 0~100。

  • 异步回调

无。本接口不单独返回异步完成通知。

设置是否开启混响音效

  • 语法
TypeScript
SetReverbEnabled(enabled: boolean): YouMeRtcErrorCode;
  • 功能

设置是否开启混响音效,这个对主播/指挥有用

  • 参数说明

enabled:true-打开,false-关闭

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

无。本接口不单独返回异步完成通知。

变声音调

获取变声音调

  • 语法
TypeScript
GetSoundtouchPitchSemiTones(): number;
  • 功能

获取变声音调(增值服务,需要后台配置开启)

  • 参数说明

无。

  • 返回值

返回当前变声音调值,范围 -12~+12。

  • 异步回调

无。本接口不单独返回异步完成通知。

设置变声音调

  • 语法
TypeScript
SetSoundtouchPitchSemiTones(floatPitchSemiTones: number): YouMeRtcErrorCode;
  • 功能

设置变声音调(增值服务,需要后台配置开启),需在进入房间成功后调用,仅对当前房间有效,退出房间时重置为0。

  • 参数说明

floatPitchSemiTones:变声音调的值,范围[-12 ~ +12]

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

无。本接口不单独返回异步完成通知。

在语音频道内广播文本消息

  • 语法
TypeScript
SendMessage(channel: string, content: string): [YouMeRtcErrorCode, number];
  • 功能

在语音频道内,广播一个文本消息。 这是一个异步调用接口,如果函数返回YOUME_SUCCESS,则需要等待以下事件回调: YOUME_EVENT_SEND_MESSAGE_RESULT,其中param为requestID的字符串。 广播成功后,频道内其他人收到文本消息通知的回调如下: YOUME_EVENT_MESSAGE_NOTIFY,其中param为文本内容。

  • 参数说明

channel:频道ID(自己需要进入这个频道)

content:要广播的文本内容。

  • 返回值

返回二元组 [YouMeRtcErrorCode, number]:第一项为请求受理错误码,第二项为 requestID。成功后仍需等待发送结果事件。

  • 异步回调

通过 SetEventCallback 注册的函数 接收:

  • YOUME_EVENT_SEND_MESSAGE_RESULT:发送结果,param 为回传 requestID。
  • YOUME_EVENT_MESSAGE_NOTIFY:频道内其他用户收到文本消息,param 为 content 内容。

设置时间戳

设置当前录音的时间戳

  • 语法
TypeScript
SetRecordingTimeMs(timeMs: number): void;
  • 功能

设置当前录音的时间戳。当通过录游戏脚本进行直播时,要保证观众端音画同步,在主播端需要进行时间对齐。 这个接口设置的就是当前游戏画面录制已经进行到哪个时间点了。

  • 参数说明

timeMs:当前游戏画面对应的时间点,单位为毫秒。

  • 返回值

无(void)。

  • 异步回调

无。本接口不单独返回异步完成通知。

设置当前声音播放的时间戳

  • 语法
TypeScript
SetPlayingTimeMs(timeMs: number): void;
  • 功能

设置当前声音播放的时间戳。当通过录游戏脚本进行直播时,要保证观众端音画同步,游戏画面的播放需要和声音播放进行时间对齐。 这个接口设置的就是当前游戏画面播放已经进行到哪个时间点了。

  • 参数说明

timeMs:当前游戏画面播放对应的时间点,单位为毫秒。

  • 返回值

无(void)。

  • 异步回调

无。本接口不单独返回异步完成通知。

移动网络设置

设置是否允许使用移动网络

  • 语法
TypeScript
SetUseMobileNetworkEnabled(enabled: boolean): void;
  • 功能

设置是否允许使用移动网络。 在WIFI和移动网络都可用的情况下会优先使用WIFI,在没有WIFI的情况下,如果设置允许使用移动网络,那么会使用移动网络进行语音通信,否则通信会失败。 该接口需要在初始化后,加入房间前设置。

  • 参数说明

enabled:true-允许使用移动网络,false-禁止使用移动网络。

  • 返回值

无(void)。

  • 异步回调

无。本接口不单独返回异步完成通知。

获取是否允许使用移动网络

  • 语法
TypeScript
GetUseMobileNetworkEnabled(): boolean;
  • 功能

获取是否允许SDK在没有WIFI的情况使用移动网络进行语音通信。

  • 参数说明

无。

  • 返回值

true-允许使用移动网络,false-禁止使用移动网络,默认情况下允许使用移动网络。

  • 异步回调

无。本接口不单独返回异步完成通知。

网络质量检测

开始网络质量检测

  • 语法
TypeScript
DetectNetworkQuality(detectTime: number, overTime: number, intervalMs: number, packSize: number): YouMeRtcErrorCode;
  • 功能

开始网络质量检测,检测结束后会收到DetectNetworkCallback回调返回结果(此功能需要联系游密后台开通)

  • 参数说明

detectTime:发包检测时长,单位为秒,建议3秒,范围(0,100]

overTime:检测终止时长,单位为秒,建议4秒,范围(0,110]

intervalMs:发包间隔,单位毫秒,建议20毫秒,范围[20,30000],发包间隔不能超过检测时长或终止时长

packSize:发包大小,单位字节,建议300字节,范围[64,1400]

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义。如之前的检测还在进行中,再次调用该接口将返回YOUME_ERROR_FREQUENCY_TOO_HIGH的返回值。

  • 异步回调

通过 SetDetectNetworkCallback 注册的函数接收。 检测结果包含 avgRtt(毫秒)和 lossPer(0~1)。

终止检测网络质量

  • 语法
TypeScript
StopDetectNetworkQuality(): YouMeRtcErrorCode;
  • 功能

终止检测网络质量,终止后将不会收到DetectNetworkCallback回调。

  • 参数说明

无。

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义。如未在进行网络质量检测就调用该接口将返回YOUME_ERROR_FREQUENCY_TOO_HIGH的返回值。

  • 异步回调

无独立终止完成通知,终止后不再继续等待本次网络检测结果。

获取SDK版本号

  • 语法
TypeScript
GetSdkVer(): string;
  • 功能

获取SDK版本号

  • 参数说明

无。

  • 返回值

返回四段式 SDK 版本号字符串,例如 1.0.0.0。

  • 异步回调

无。本接口不单独返回异步完成通知。

反初始化引擎

  • 语法
TypeScript
UnInit(): YouMeRtcErrorCode;
  • 功能

反初始化引擎,在应用退出之前需要调用这个接口释放资源 这是一个同步调用接口,函数返回时表明操作已经完成

  • 参数说明

无。

  • 返回值

返回YOUME_SUCCESS表示成功,返回其它值表示发生了错误,错误码参考YouMeRtcErrorCode定义

  • 异步回调

无。本接口不单独返回异步完成通知。

变声相关文档

需要配合游密变声管理模块文档使用。

设置变声是否可用

  • 语法
C#
YouMeErrorCode SetMagicVoiceEnable(bool enabled);
  • 功能

设置变声是否可用。

  • 参数说明

enabled:设置变声是否可用,开启后会略微增大声音延迟。

  • 返回值

如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。

  • 异步回调

无。本接口不单独返回异步完成通知。