Video SDK for Android API接口手册

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

游密语音引擎SDK接口调用都会立即返回,凡是本身需要较长耗时的接口调用都会采用异步回调的方式,所有接口都可以在主线程中直接使用。接口大部分在api对象中,部分特殊接口在NativeEngine对象中。

设置回调

  • 功能描述 设置回调,在初始化接口之前调用。

  • 语法

    public static void SetCallback(YouMeCallBackInterface callBack);
  • 参数说明 callBack:implements 接口YouMeCallBackInterface的类对象。

初始化相关

判断是否初始化完成

  • 语法

    public static native boolean isInited();
  • 返回值 true——初始化完成,false——初始化未完成。

初始化

  • 功能描述 初始化语音引擎,做APP验证和资源初始化。

  • 语法

    public static native int init (String strAPPKey, String strAPPSecret, int serverRegionId, String strExtServerRegionName);
  • 参数说明 strAPPKey:从游密申请到的 app key, 这个是你们应用程序的唯一标识。 strAPPSecret:对应 appKey 的私钥, 这个需要妥善保存,不要暴露给其他人。 serverRegionId:设置首选连接服务器的区域码,如果在初始化时不能确定区域,可以填RTC_DEFAULT_SERVER,后面确定时通过 setServerRegion 设置。如果YOUME_RTC_SERVER_REGION定义的区域码不能满足要求,可以把这个参数设为 RTC_EXT_SERVER,然后通过后面的参数serverRegionName 设置一个自定的区域值(如中国用 "cn" 或者 “ch"表示),然后把这个自定义的区域值同步给游密,我们将通过后台配置映射到最佳区域的服务器。 strExtServerRegionName:自定义的扩展的服务器区域名。不能为null,可为空字符串""。只有前一个参数serverRegionId设为RTC_EXT_SERVER时,此参数才有效(否则都将当空字符串“”处理)。

  • 返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义

  • 异步回调

    void onEvent(int eventType, int iErrorCode, String roomid, Object param);
  • 事件类型 涉及到的主要回调事件有: YOUME_EVENT_INIT_OK - 表明初始化成功 YOUME_EVENT_INIT_FAILED - 表明初始化失败,最常见的失败原因是网络错误或者 AppKey-AppSecret 错误

反初始化

  • 功能描述 反初始化引擎,可在退出游戏时调用,以释放SDK所有资源。

  • 语法

    public static native int unInit ();
  • 返回值 如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义

sdk基本信息

获取sdk信息

  • 功能描述 获取sdk版本信息和mcu登陆地址

  • 语法

    public static native String getSdkInfo();
  • 返回值 返回sdk版本和登陆mcu地址字符串

日志管理

设置日志等级

  • 功能描述 设置日志等级,在初始化接口之前调用

  • 语法

    public static native void setLogLevel(  int consoleLevel, int fileLevel );
  • 参数说明 consoleLevel:控制台日志等级, 有效值参看YOUME_LOG_LEVEL fileLevel:文件日志等级, 有效值参看YOUME_LOG_LEVEL

设置用户自定义日志路径

  • 语法

    public static native int setUserLogPath (String filePath);
  • 参数说明 filePath:Log文件的路径

  • 返回值 如果成功则返回YOUME_SUCCESS,其他参考YouMeErrorCode类型定义

应用层日志记录

  • 功能描述 将应用层的日志,写入到日志文件中

  • 语法

    public native static void logcat(int mode, String tag, String msg);
  • 参数说明 mode:日志打印级别,1 info,2 warning,3 error tag:日志标记 msg:日志内容

频道管理

加入频道(单频道)

  • 功能描述 加入频道(单频道模式,每个时刻只能在一个频道里面)。

  • 语法

    public static native int joinChannelSingleMode (String strUserID, String strRoomID, int userRole, boolean autoRecv);
  • 参数说明 strUserID:全局唯一的用户标识,全局指在当前应用程序的范围内。 strRoomID:全局唯一的频道标识,全局指在当前应用程序的范围内。 userRole:用户在语音频道里面的角色,见YouMeUserRole定义。 autoRecv:是否自动接收频道内其他有人的视频,true表示自动接收,如果为false,需要调用 setUsersVideoInfo指定接收流后才会收到对方视频

  • 返回值 返回值请参考YouMeErrorCode类型定义

  • 异步回调

    void onEvent(int eventType, int iErrorCode, String roomid, Object param);
  • 事件类型 涉及到的主要回调事件有: YOUME_EVENT_JOIN_OK - 成功进入语音频道 YOUME_EVENT_JOIN_FAILED - 进入语音频道失败

加入频道(多频道)

  • 功能描述 加入语音频道(多频道模式,可以同时在多个语音频道里面)

  • 语法

    public static native int joinChannelMultiMode(String strUserID, String strRoomID, int userRole);
  • 参数说明 strUserID:用户ID,要保证全局唯一 strRoomID:频道ID,要保证全局唯一 userRole:用户角色,用于决定讲话/播放背景音乐等权限

  • 返回值 返回值请参考YouMeErrorCode类型定义

  • 异步回调

    void onEvent(int eventType, int iErrorCode, String roomid, Object param);
  • 事件类型 涉及到的主要回调事件有: YOUME_EVENT_JOIN_OK - 成功进入语音频道 YOUME_EVENT_JOIN_FAILED - 进入语音频道失败

使用appkey加入房间

  • 功能描述 加入频道(单频道模式,每个时刻只能在一个频道里面)

  • 语法

    public static native int joinChannelSingleModeWithAppKey (String strUserID, String strRoomID, int userRole, String strJoinAppKey, boolean autoRecv);
  • 参数说明 strUserID:用户ID,要保证全局唯一 strRoomID:频道ID,要保证全局唯一 userRole:用户角色,用于决定讲话/播放背景音乐等权限 strJoinAppKey:加入房间用额外的appkey autoRecv:是否自动接收频道内其他有人的视频,true表示自动接收,如果为false,需要调用 setUsersVideoInfo指定接收流后才会收到对方视频

  • 返回值 返回值请参考YouMeErrorCode类型定义

  • 异步回调

    void onEvent(int eventType, int iErrorCode, String roomid, Object param);
  • 事件回调 涉及到的主要回调事件有: YOUME_EVENT_JOIN_OK - 成功进入语音频道 YOUME_EVENT_JOIN_FAILED - 进入语音频道失败

退出频道

  • 功能描述 退出所有的语音频道(单频道模式下直接调用此函数离开频道即可)。

  • 语法

    public static native int leaveChannelAll ();
  • 返回值 返回值请参考YouMeErrorCode类型定义

  • 异步回调

    void onEvent(int eventType, int iErrorCode, String roomid, Object param);
  • 事件类型 涉及到的主要回调事件有: YOUME_EVENT_LEAVED_ALL - 成功退出所有语音频道

退出多频道

  • 功能描述 退出多频道模式下的某个语音频道

  • 语法

    public static native int leaveChannelMultiMode (String strChannelID);
  • 参数说明 strChannelID:频道ID,要保证全局唯一

  • 返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义

  • 异步回调

    void onEvent(int eventType, int iErrorCode, String roomid, Object param);
  • 事件类型 涉及到的主要回调事件有: YOUME_EVENT_LEAVED_ALL - 成功退出所有语音频道

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

  • 功能描述 通过频道id来查询自己是否在该频道内

  • 语法

    public static native boolean isInChannel( String strChannelID );
  • 参数描述 strChannelID: 指定频道ID

  • 返回值 true——在频道内,false——没有在频道内

查询是否在频道内

  • 功能描述 查询自己是否加入了频道

  • 语法

    public static boolean isInChannel( );
  • 返回值 true——在频道内,false——没有在频道内

把人踢出房间

  • 功能描述 在指定的房间里,根据userID来踢出用户

  • 语法

    public static native int kickOtherFromChannel(  String pUserID, String  pChannelID,  int lastTime  );
  • 参数说明 pUserID:被踢的用户ID。 pChannelID:从哪个房间踢出(自己需要在房间)。 lastTime:踢出后,多长时间内不允许再次进入。

  • 返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义

  • 异步回调

    void onEvent(int event, int iErrorCode, String roomid, Object param);
  • 事件类型 event:YOUME_EVENT_KICK_RESULT: 踢人方收到,发送消息的结果回调,param为被踢者ID event:YOUME_EVENT_KICK_NOTIFY: 被踢方收到,被踢通知,会自动退出所在频道。param: (踢人者ID,被踢原因,被禁时间)

查询频道用户列表

  • 功能描述 查询频道当前的用户列表, 并设置是否获取频道用户进出的通知。(必须自己在频道中)

  • 语法

    public static native int getChannelUserList( String strChannelID, int maxCount, boolean notifyMemChange );
  • 参数说明 strChannelID:要查询的频道ID。 maxCount:想要获取的最大人数。-1表示获取全部列表。 notifyMemChange:其他用户进出房间时,是否要收到通知。

  • 返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义

  • 异步回调

    void onMemberChange(String channelID, MemberChange[] changeList, boolean isUpdate);
  • 异步回调参数说明 channelID:频道ID changeList:查询获得的用户列表,或变更列表。 isUpdate: 是否是增量通知,刚进入频道会收到一次全量通知,为false,之后成员发生变化属于增量通知,为true

音频设备管理

切换语音输出设备

  • 功能描述 默认输出到扬声器,在加入房间成功后设置(iOS受系统限制,如果已释放麦克风则无法切换到听筒)

  • 语法

    public static native int setOutputToSpeaker (boolean bOutputToSpeaker);
  • 参数说明 bOutputToSpeaker:true——输出到扬声器,false——输出到听筒。

  • 返回值 如果成功返回YOUME_SUCCESS,否则返回错误码,具体请参考YouMeErrorCode类型定义

设置音频输出状态

  • 功能描述 打开/关闭音频输出。

  • 语法

    public static native void setSpeakerMute (boolean bOn);
  • 参数说明 bOn:true——禁用音频输出,false——打开音频输出。

获取音频输出状态

  • 语法

    public static native boolean getSpeakerMute ();
  • 返回值 true——音频输出已禁用,false——音频输出已开启。

设置麦克风状态

  • 功能描述 打开/关闭麦克风。

  • 语法

    public static native void setMicrophoneMute (boolean mute);
  • 参数说明 mute:true——关闭麦克风,false——开启麦克风。

获取麦克风状态

  • 语法

    public static native boolean getMicrophoneMute ();
  • 返回值 true——麦克风关闭,false——麦克风开启。

设置是否通知别人麦克风和音频输出的开关

  • 功能描述 设置是否通知别人,自己麦克风和音频输出的开关状态

  • 语法
    public static native void setAutoSendStatus( boolean bAutoSend );

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

  • 功能描述 设置当麦克风静音时,是否释放麦克风设备(需要在初始化成功后,加入房间之前调用)

  • 语法

    public static native int setReleaseMicWhenMute(boolean enabled);
  • 参数说明 enabled: true--当麦克风静音时,释放麦克风设备,此时允许第三方模块使用麦克风设备录音。在Android上,语音通过媒体音轨,而不是通话音轨输出;false--不管麦克风是否静音,麦克风设备都会被占用。

  • 返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义

控制他人麦克风

  • 语法

    public static native int setOtherMicMute (String strUserID, boolean status );
  • 参数说明 strUserID:要控制的用户ID status:是否静音。true:静音别人的麦克风,false:开启别人的麦克风

  • 返回值 如果成功返回YOUME_SUCCESS,否则返回错误码,具体请参考YouMeErrorCode类型定义

控制他人音频输出状态

  • 语法

    public static native int setOtherSpeakerMute (String strUserID, boolean status );
  • 参数说明 strUserID:要控制的用户ID status:是否静音。true:关闭别人的音频输出,false:开启别人的音频输出

  • 返回值 如果成功返回YOUME_SUCCESS,否则返回错误码,具体请参考YouMeErrorCode类型定义

视频设备管理

启动摄像头采集

  • 功能描述 打开摄像头,开始采集

  • 语法

    public static int StartCapturer()
  • 返回值 错误码,0 - 表示成功,其他 - 具体错误码

停止摄像头采集

  • 语法
    public static void StopCapturer()

切换前置/后置摄像头

  • 语法
    public static int SwitchCamera()
  • 返回值

    错误码,0 - 表示成功,其他 - 具体错误码

是否启动前置摄像头

  • 功能描述 设置下一次调用startCapture时,采用前置摄像头采集还是后置摄像头。 默认为前置摄像头。

  • 语法
    public static void SetCaptureFrontCameraEnable(boolean enable)
  • 参数说明 enable: true-前置摄像头,false-后置摄像头。

获取摄像头是否支持变焦

  • 语法

    public static native boolean isCameraZoomSupported();
  • 返回值 true 支持,false 不支持

设置摄像头变焦

  • 语法

    public static native float setCameraZoomFactor(float zoomFactor);
  • 参数说明 zoomFactor: 1.0 表示原图像大小, 大于1.0 表示放大,默认1.0f

  • 返回值 设置后当前缩放比例

获取摄像头是否支持自定义坐标对焦

  • 语法

    public static native boolean isCameraFocusPositionInPreviewSupported();
  • 返回值 true 支持,false 不支持

设置摄像头自定义对焦坐标

左上角坐标(0.0,1.0),右下角(1.0,0.0),默认(0.5,0.5)

  • 语法

    public static native boolean setCameraFocusPositionInPreview( float x , float y );
  • 参数说明 x: 横坐标, 0.0f-1.0f y: 纵坐标, 0.0f-1.0f

  • 返回值 true 成功,false 失败

获取摄像头是否支持闪光灯

  • 语法

    public static native boolean isCameraTorchSupported();
  • 返回值 true 支持,false 不支持

设置摄像头开启闪光灯

  • 语法

    public static native boolean setCameraTorchOn(boolean isOn );
  • 参数说明 isOn: true 打开,false 关闭

  • 返回值 true 成功,false 失败

获取摄像头是否支持自动人脸对焦

  • 语法

    public static native boolean isCameraAutoFocusFaceModeSupported();
  • 返回值 true 支持,false 不支持

设置摄像头开启人脸对焦

  • 语法

    public static native boolean setCameraAutoFocusFaceModeEnabled(boolean enabled);
  • 参数说明 enabled: true 打开,false 关闭

  • 返回值 true 成功,false 失败

视频参数

切换横屏

  • 功能描述 横竖屏变化时,通知sdk把分辨率切换到横屏适配模式

  • 语法

    public static native int switchResolutionForLandscape();
  • 返回值 YOUME_SUCCESS - 成功 其他 - 具体错误码

切换竖屏

  • 功能描述 横竖屏变化时,通知sdk把分辨率切换到竖屏适配模式

  • 语法

    public static native int resetResolutionForPortrait();
  • 返回值 YOUME_SUCCESS - 成功 其他 - 具体错误码

设置屏幕旋转

  • 语法

    public static void setScreenRotation(int rotation);
  • 参数说明 rotation: 视频逆时针旋转度数

屏幕发生旋转变化

  • 功能描述 当屏幕发生旋转时,检测屏幕旋转的度数,调整摄像头采集的宽高。

  • 语法
    public static void screenRotationChange();

设置预览视频镜像

  • 语法

    public static native int setlocalVideoPreviewMirror(boolean enable);
  • 参数说明 enable: true 预览开启镜像功能,false 预览关闭镜像功能

设置视频帧率

  • 语法

    public static native int setVideoFps(int fps);
  • 参数说明 fps: 帧率(3-30),默认15帧

  • 返回值 错误码,0 - 表示成功,其他 - 具体错误码

设置视频预览帧率

  • 语法

    public static native int setVideoPreviewFps(int fps);
  • 参数说明 fps:帧率(1-60),默认15帧

  • 返回值 错误码,0 - 表示成功,其他 - 具体错误码

设置本地视频渲染回调的分辨率

  • 语法

    public static native int setVideoLocalResolution(int width, int height);
  • 参数说明 width: 宽 height: 高

  • 返回值 错误码,0 - 表示成功,其他 - 具体错误码

设置网络传输分辨率

  • 功能描述 设置视频网络传输过程的分辨率(第一路高分辨率)。 接受方收到视频回调的分辨率,等于发送方设置的网络分辨率。

  • 语法

    public static native int  setVideoNetResolution( int width, int height );
  • 参数说明 width: 宽 height: 高

  • 返回值 错误码,0 - 表示成功,其他 - 具体错误码

设置视频上行的码率范围

  • 功能描述 设置视频上行码率,在进入房间前设置。

  • 语法

    public static native void setVideoCodeBitrate(int maxBitrate, int minBitrate);
  • 参数说明 maxBitrate: 最大码率,单位kbps minBitrate: 最小码率,单位kbps

获取视频上行的当前码率

  • 语法

    public static native int getCurrentVideoCodeBitrate( );
  • 返回值 视频上行的当前码率

设置VBR模式

  • 功能描述 设置是否使用VBR动态码率模式,允许一定范围的波动,可以提高移动时的画面稳定性。 需要在进入房间前设置。

  • 语法

    public static native int setVBR( boolean useVBR );
  • 参数说明 useVBR: 默认false,尽可能保持码率平稳,true 允许一定范围的波动,可以提高移动时的画面稳定性

  • 返回值 错误码,YOUME_SUCCESS - 表示成功,其他 - 具体错误码

查询多个用户视频信息

  • 功能描述 查询多个用户支持哪种流。

  • 语法

    public static int queryUsersVideoInfo(String []userArray);
  • 参数说明 userArray: 用户ID列表

  • 返回值 错误码,0 - 表示成功,其他 - 具体错误码

  • 回调

    public void onEvent (int event, int error, String room, Object param)
  • 事件类型 event:YOUME_EVENT_QUERY_USERS_VIDEO_INFO 查询用户支持哪些流信息

批量订阅远端用户视频流

  • 功能描述 一次性订阅远端多个用户大流还是小流。如果设置了不支持的流,则采用默认的第一路流。

  • 语法

    public static int setUsersVideoInfo(String [] userArray, int [] resolutionArray);
  • 参数说明 userArray: 用户ID列表 resolutionArray: 用户对应分辨率列表(0-第一路流/1-第二路流)

  • 返回值 错误码,0 - 表示成功,其他 - 具体错误码

设置视频传输大小流自动调整

  • 功能描述 设置视频网络传大小流自动调整。 需要在进入房间前设置。

  • 语法

    public static native int setVideoNetAdjustmode( int mode );
  • 参数说明 mode: 0: 自动调整;1: 上层设置大小流接收选择

  • 返回值 错误码,YOUME_SUCCESS - 表示成功,其他 - 具体错误码

设置视频接收平滑模式开关

  • 功能描述 设置视频接收平滑模式开关,进入房间前设置或进房间后动态设置

  • 语法

    public static native int setVideoSmooth( int mode );
  • 参数说明 mode: 开关 0:关闭平滑,1:打开平滑

  • 返回值 错误码,YOUME_SUCCESS - 表示成功,其他 - 具体错误码

设置开启硬编硬解

  • 功能描述 实际根据是否开启硬解,同时还跟服务器配置及硬件是否支持有关,要全部满足条件才会使用硬解。如果硬编硬解失败,系统会自动切换回软解。 在进入房间前设置。

  • 语法

    public static native void setVideoHardwareCodeEnable( boolean bEnable );
  • 参数说明 bEnable: true:开启,false:不开启

获取硬编硬解状态

  • 功能描述 获取系统当前是否开启硬编硬解

  • 语法

    public static native boolean getVideoHardwareCodeEnable( );
  • 返回值 true:开启,false:不开启

设置视频编码方式

  • 功能描述 设置视频回调方式,默认为false,开启硬编,同时回调opengl纹理方式。设置为true,则关闭硬编,回调yuv格式

  • 语法

    public static native int setVideoFrameRawCbEnabled(boolean enabled);
  • 参数说明 enabled: true 打开,false 关闭,默认关闭

  • 返回值 错误码,0 - 表示成功,其他 - 具体错误码

视频输出回调

  • 功能描述 设置渲染接口,渲染从底层接收的视频流。在加入房间后设置。

  • 语法

    public static void setVideoFrameCallback( VideoMgr.VideoFrameCallback  callback )
  • 参数说明 callback:视频数据回调接口,用于渲染视频

设置本地视频是否发送

  • 语法

    public static native int enableLocalVideoSend(boolean enable);
  • 参数说明 enable:true 发送本地视频,false 不发送本地视频

  • 返回值 返回值请参考YouMeErrorCode类型定义

设置无帧数据超时时间

  • 功能描述 设置无视频帧渲染的等待超时时间。连接中的视频,超过设置的timeout时间没有收到数据,会得到YOUME_EVENT_OTHERS_VIDEO_SHUT_DOWN通知。

  • 语法

    public static native void setVideoNoFrameTimeout(int timeout);
  • 参数说明 timeout: 单位毫秒

屏蔽他人视频

  • 语法

    public static void maskVideoByUserId(String userId, boolean mask);
  • 参数说明 userId: 用户ID mask: true - 屏蔽, false - 恢复不屏蔽

  • 返回值 错误码,0 - 表示成功,其他 - 具体错误码

设置解码前回调数据

  • 功能描述 设置是否回调视频解码前H264数据,需要在加入房间之前设置

  • 语法
    public static void setVideoPreDecodeCallbackEnable(YouMeVideoPreDecodeCallbackInterface callback, boolean needDecodeandRender);
  • 参数说明 callback: 回调方法 needDecodeandRender:是否需要解码并渲染:true 需要;false 不需要

设置视频解码数据回调方式

  • 功能描述 设置视频数据回调方式,默认为false,硬解码回调opengl纹理方式,。设置为true时,回调yuv格式
  • 语法

    public static native int setVideoDecodeRawCbEnabled(boolean enabled);
  • 参数说明 enabled:true 打开,false 关闭,默认关闭

  • 返回值 YOUME_SUCCESS - 成功 其他 - 具体错误码

高低两路视频流

SDK支持向服务器上传品质不同的两路流(不同的分辨率和码率),观看方根据自己的情况,设置拉取不同的流。 默认不上传第二路流。

设置网络传输分辨率

  • 功能描述 设置视频上传第二路流的网络传输过程的分辨率。 默认不传第二路流。如果设置了第二路流的分辨率,则会上传。 在加入房间前设置。

  • 语法

    public static int  setVideoNetResolutionForSecond( int width, int height );
  • 参数说明 width: 宽 height: 高

  • 返回值

    错误码,0 - 表示成功,其他 - 具体错误码

设置视频数据上行码率范围

  • 功能描述 设置第二路流的上行码率范围。 在进入房间前设置。

  • 语法

    public static void setVideoCodeBitrateForSecond(  int maxBitrate,   int minBitrate);
  • 参数说明 maxBitrate: 最大码率,单位kbps minBitrate: 最小码率,单位kbps

  • 返回值

    错误码,0 - 表示成功,其他 - 具体错误码

设置VBR动态码率

  • 功能描述 设置第二路流是否使用VBR动态码率模式,允许一定范围的波动,可以提高移动时的画面稳定性。 在进入房间前设置。

  • 语法

    public static int setVBRForSecond( boolean useVBR );
  • 参数说明 useVBR: 默认false,尽可能保持码率平稳,true 允许一定范围的波动,可以提高移动时的画面稳定性

  • 返回值 错误码,YOUME_SUCCESS - 表示成功,其他 - 具体错误码

设置小流帧率

  • 功能描述 设置小流帧率 (如果大于大流帧率,以大流帧率为准),在进入房间之前设置

  • 语法

    public static native int setVideoFpsForSecond(int fps);
  • 参数说明 fps:帧率(1-30),默认15帧

共享流参数配置

设置共享流编码分辨率

  • 功能描述 设置共享流编码分辨率,在加入房间之前设置。

  • 语法

    public static native int setVideoNetResolutionForShare( int width, int height );
  • 参数说明 width:编码分辨率宽 height:编码分辨率高

  • 返回值 错误码,YOUME_SUCCESS - 表示成功,其他 - 具体错误码

设置共享流码率

  • 功能描述 设置共享视频数据上行的码率的上下限,在进入房间之前设置

  • 语法

    public static native void setVideoCodeBitrateForShare( int maxBitrate,  int minBitrate );
  • 参数说明 maxBitrate:最大码率,单位kbps. 0:使用默认值 minBitrate:最小码率,单位kbps. 0:使用默认值

设置共享流动态码率

  • 功能描述 设置共享流视频编码是否采用VBR动态码率方式,在加入房间之前设置。

  • 语法

    public static native int setVBRForShare( boolean useVBR );
  • 参数说明 useVBR:true 使用VBR动态码率,false 不使用VBR动态码率

  • 返回值 错误码,YOUME_SUCCESS - 表示成功,其他 - 具体错误码

设置共享流帧率

  • 语法

    public static native int setVideoFpsForShare(int fps);
  • 参数说明 fps:帧率(1-30),默认15帧

  • 返回值 错误码,YOUME_SUCCESS - 表示成功,其他 - 具体错误码

渲染

获取是否启用OpenGL

  • 功能描述 获取系统是否使用OpenGL来渲染视频

  • 语法

    public static native boolean getUseGL( );
  • 返回值 true:开启,false:不开启, 默认为true;

设置渲染回调

  • 功能描述 回调的视频数据,会渲染到addRender设置的view上。 需要在任何addRender之前调用。

  • 语法
    public static void SetVideoCallback();

创建渲染

接口在 VideoRenderer 类中

  • 功能描述 绑定userId与渲染视图,根据userId对应的view来渲染视频

  • 语法

    public int addRender(String userId, SurfaceViewRenderer view)
  • 参数说明 userId: userId 用户ID view: 视频数据渲染的view

  • 返回值 大于等于0 - renderId, 小于0 - 具体错误码

  • 回调 视频数据回调

设置自己的userID

  • 语法

    public void setLocalUserId(String userId) 
  • 参数说明 userId:本端的userid。本地视频或者合流视频画面显示到用本地userId注册的视图上。

删除渲染

  • 语法

    public int deleteRender(String userId)
  • 参数说明 userId: userId 用户ID

  • 返回值 错误码,0 - 表示成功,其他 - 具体错误码

删除所有渲染

  • 语法
    public void deleteAllRender() 

设置OpenGL共享上下文

  • 功能描述 在对OpenGL开发的过程中,由于正常只使用一个线程来进行绘图操作,这样有时会满足不了需求,所以需要加入多线程来进行操作。 但是如果创建两个独立的渲染线程,这样却无法将绘图的信息同时显示在同一屏幕上,这时就需要使用到OpenGL的共享上下文方案,可以在两个线程中共享同一资源。 在Android系统中,实现共享上下文很简单,只需要在调用eglCreateContext的时候将上一个已经创建好的eglContext传入即可。
  • 语法
    public static Object setSharedEGLContext()

获取OpenGL共享上下文

  • 语法
    public static Object sharedEGLContext()

获取相机渲染纹理

  • 功能描述 获取SDK共享EGLContext线程创建的SurfaceTexture, 然后设置setOnFrameAvailableListener监听。

  • 语法
    public static SurfaceContext getCameraSurfaceTexture()

渲染视图

接口在渲染对象 SurfaceViewRenderer

  • 功能描述 渲染一帧视频图像,创建渲染之后会自动调用

  • 语法
    public void renderFrame(VideoBaseRenderer.I420Frame frame)
  • 参数说明 frame:待渲染的I420帧数据

设置背景渲染颜色

  • 语法

    public void setRenderBackgroundColor(int r, int g, int b, int alpha)
  • 参数说明 r:红色分量颜色值 g:绿色分量颜色值 b:蓝色分量颜色值 alpha:透明度

清空渲染视图

  • 功能描述 清空渲染视图,显示背景色

  • 语法
    public void clearImage()

视频合流

设置合流总尺寸

  • 功能描述 把远端的视频和本地自己的视频合到一个画面,称为合流。本接口设置合流画面总的尺寸。

  • 语法

    public static void setMixVideoSize(int width, int height)
  • 参数说明 width: 宽 height: 高

设置用户合流位置

  • 功能描述 设置user的视频数据在合流画面中展现的位置和尺寸。

  • 语法

    public static void addMixOverlayVideo(String userId, int x, int y, int z, int width, int height)
  • 参数说明 userId: 特定用户ID x: x坐标 y: y坐标 z: z坐标,影响视频的展示层级 width: 宽 height: 高

取消用户合流

  • 语法

    public static void removeMixOverlayVideo(String userId)
  • 参数说明 userId: user ID

取消所有user的合流

  • 语法
    public static void removeMixAllOverlayVideo()

设置合流回调外部

  • 功能描述 混流后视频数据已YUV420P格式回调到外部

  • 语法

    public static boolean setOpenVideoMixerYUVCallBack(boolean enabled)
  • 参数说明 enabled: true-打开,false-关闭

  • 返回值 true:设置成功, false:设置失败

设置视频合流回调

  • 功能描述 设置视频混流完成回调YUV格式数据

  • 语法
    public static boolean setVideoMixerRawCallbackEnabled(boolean enabled)
  • 参数说明 enabled: true-打开,false-关闭

  • 返回值 true:设置成功, false:设置失败

音频参数

设置音频采样率

  • 功能描述 设置音频采用率,在加入房间之前设置。

  • 语法

    public static void  setAudioQuality(  int quality  );
  • 参数说明 quality:0: 低质量,16K采样率, 1: 高质量,48K采样率

设置音量

  • 功能描述 设置当前程序输出音量大小。在加入房间成功后设置。

  • 语法

    public static native void setVolume (int uiVolume);
  • 参数说明 uiVolume:当前音量大小,范围[0-100]。

获取音量

  • 语法

    public static native int getVolume ();
  • 功能描述 获取当前程序输出音量大小,此音量值为程序内部的音量,与系统音量相乘得到程序使用的实际音量。

  • 返回值 当前音量大小,范围[0-100]。

设置是否听某人的语音

  • 语法

    public static native int setListenOtherVoice (String strUserID, boolean on );
  • 参数说明 strUserID:要控制的用户ID。 on:true表示开启接收指定用户的语音,false表示屏蔽指定用户的语音。

设置语音检测

  • 功能描述 设置是否开启语音检测回调。开启后频道内有人正在讲话与结束讲话都会发起相应回调通知。

  • 语法

    public static native int setVadCallbackEnabled (boolean enabled);
  • 参数说明 enabled:true——打开,false——关闭。

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

设置是否开启本端采集音量回调

  • 功能描述 设置是否开启本端采集音量回调, 并设置相应的参数,在加入房间前设置。

  • 语法

    public static native int setMicLevelCallback(int maxLevel);
  • 参数说明 maxLevel:音量最大时对应的级别,最大可设100。根据实际需要设置小于100的值可以减少回调的次数(注意设置较高的值可能会产生大量回调,特别在Unity上会影响其它事件到达,一般建议不超过30)。比如你只在UI上呈现10级的音量变化,那就设10就可以了。设 0 表示关闭回调。

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

设置是否开启远端语音音量回调

  • 功能描述 设置是否开启远端语音音量回调, 并设置相应的参数,在加入房间前设置。

  • 语法

    public static native int setFarendVoiceLevelCallback(int maxLevel);
  • 参数说明 maxLevel:音量最大时对应的级别,最大可设100。比如你只在UI上呈现10级的音量变化,那就设10就可以了。设 0 表示关闭回调。

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

设置耳返监听

  • 功能描述 设置是否用耳机监听自己的声音,当不插耳机或外部输入模式时,这个设置不起作用 这是一个同步调用接口。

  • 语法

    public static native int setHeadsetMonitorOn(boolean micEnabled, boolean bgmEnabled);
  • 参数说明 micEnabled:是否监听麦克风 true 监听,false 不监听。 bgmEnabled:是否监听背景音乐 true 监听,false 不监听。

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

插入耳机时,设置是否退出系统通话模式

  • 功能描述 设置插入耳机时,是否自动退出系统通话模式(禁用手机硬件提供的回声消除等信号前处理)。 系统提供的前处理效果包括回声消除、自动增益等,有助于抑制背景音乐等回声噪音,减少系统资源消耗。 由于插入耳机可从物理上阻断回声产生,故可设置禁用该效果以保留背景音乐的原生音质效果。默认为false,在初始化之后、加入房间之前调用。 注:Windows和macOS不支持该接口。

  • 语法

    public static native int setExitCommModeWhenHeadsetPlugin(boolean enabled);
  • 参数说明 enabled:true 当插入耳机时,自动禁用系统硬件信号前处理,拔出时还原,false 插拔耳机不做处理.

  • 返回值 具体参见YouMeErrorCode类型定义

设置系统通话模式

  • 功能描述 设置系统通话模式,优先级最高.默认使用服务器后台配置项 Windows和macOS不支持该接口 在初始化之后、加入房间之前调用

  • 语法

    public static native int setCommMode(boolean enabled);
  • 参数说明 enabled:true 启动系统通话模式,false 禁用系统通话模式

  • 返回值 具体参见YouMeErrorCode类型定义

设置混响音效

  • 功能描述 设置是否开启混响音效,这个主要对主播/指挥有用。

  • 语法

    public static native int setReverbEnabled (boolean enabled);
  • 参数说明 enabled:true——打开,false——关闭。

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

设置音频数据回调

  • 功能描述 设置是否开启音频pcm回调,以及开启哪种类型的pcm回调。 在加入房间前调用。

  • 语法

    public static void setPcmCallbackEnable (YouMeCallBackInterfacePcm callback, int flag, boolean outputToSpeaker, int nOutputSampleRate, int nOutputChannel)
  • 参数说明 callback:实现音频pcm回调的示例 flag:说明需要哪些类型的音频回调,共有三种类型的回调,分别是远端音频,录音音频,以及远端和录音数据的混合音频。flag格式形如YouMeConst.YouMePcmCallBackFlag.PcmCallbackFlag_Romote| YouMeConst.YouMePcmCallBackFlag.PcmCallbackFlag_Record|YouMeConst.YouMePcmCallBackFlag.PcmCallbackFlag_MixbOutputToSpeaker: true 开启音频输出;false 关闭音频输出 nOutputSampleRate: 音频回调数据的采样率:8000,16000,32000,44100,48000; 具体参考 YOUME_SAMPLE_RATE类型定义 nOutputChannel: 音频回调数据的通道数:1 单通道;2 立体声

  • 回调接口 YouMeCallBackInterfacePcm 接口类中回调函数如下:

  • 远端pcm数据回调

    void onPcmDataRemote(int channelNum, int samplingRateHz, int bytesPerSample, byte[] data);
  • 录音数据回调

    void onPcmDataRecord(int channelNum, int samplingRateHz, int bytesPerSample, byte[] data);
  • 远端和录音的混合数据回调

    void onPcmDataMix(int channelNum, int samplingRateHz, int bytesPerSample, byte[] data);
  • 接口参数说明 channelNum:声道数 samplingRateHz:采样率 bytesPerSample:采样深度 data:pcm数据buffer

音频输出回调

  • 功能描述 配置音频回调接口

  • 语法

    public static void setAudioFrameCallback( YouMeAudioCallbackInterface callback  )
  • 参数说明 callback:音频接口回调对象

背景音乐管理

播放背景音乐

  • 功能描述 播放指定的音乐文件。播放的音乐将会通过音频设备输出,并和语音混合后发送给接收方。这个功能适合于主播/指挥等使用。

  • 语法

    public static native int playBackgroundMusic (String filePath, boolean bRepeat);
  • 参数说明 path:音乐文件的路径。 repeat:是否重复播放,true——重复播放,false——只播放一次就停止播放。

  • 返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义

  • 异步回调

    void onEvent(int eventType, int iErrorCode, String roomid, Object param);
  • 事件类型 主要回调事件: YOUME_EVENT_BGM_STOPPED - 通知背景音乐播放结束 YOUME_EVENT_BGM_FAILED - 通知背景音乐播放失败

停止播放背景音乐

  • 功能描述 停止播放当前正在播放的背景音乐。 这是一个同步调用接口,函数返回时,音乐播放也就停止了。

  • 语法

    public static native int stopBackgroundMusic ();
  • 返回值 如果成功返回YOUME_SUCCESS,表明成功停止了音乐播放流程;否则返回错误码,具体请参考YouMeErrorCode类型定义

暂停播放背景音乐

  • 功能描述 如果当前正在播放背景音乐的话,暂停播放

  • 语法

    public static native int pauseBackgroundMusic();
  • 返回值 如果成功返回YOUME_SUCCESS,表明成功停止了音乐播放流程;否则返回错误码,具体请参考YouMeErrorCode类型定义

恢复播放背景音乐

  • 功能描述 如果当前正在播放背景音乐的话,恢复播放

  • 语法

    public static native int resumeBackgroundMusic();
  • 返回值 如果成功返回YOUME_SUCCESS,表明成功停止了音乐播放流程;否则返回错误码,具体请参考YouMeErrorCode类型定义

背景音乐是否在播放

  • 语法

    public static native boolean isBackgroundMusicPlaying();
  • 返回值 true——正在播放,false——没有播放

设置背景音乐播放音量

  • 功能描述 设定背景音乐的音量。这个接口用于调整背景音乐和语音之间的相对音量,使得背景音乐和语音混合听起来协调。 这是一个同步调用接口。

  • 语法

    public static native int setBackgroundMusicVolume (int vol);
  • 参数说明 vol:背景音乐的音量,范围 [0-100]。

  • 返回值 如果成功(表明成功设置了背景音乐的音量)返回YOUME_SUCCESS,否则返回错误码,具体请参考YouMeErrorCode类型定义

设置音视频统计数据时间间隔

  • 功能描述 设置音视频统计数据时间间隔,SDK会按这个间隔回调 onAVStatistic

  • 语法

    public static void setAVStatisticInterval(  int interval  );
  • 参数说明 interval:时间间隔

外部采集模式

设置是否由外部输入音视频

  • 功能描述 默认使用内部采集。如果使用外部采集,需要自己采集音视频,然后把数据传入SDK。在Init之前调用。

  • 语法

    public static void setExternalInputMode( boolean bInputModeEnabled );
  • 参数说明 bInputModeEnabled: true:外部输入模式,false:SDK内部采集模式

设置外部输入模式的语音采样率

  • 语法

    public static int  setExternalInputSampleRate(  int inputSampleRate, int mixedCallbackSampleRate  );
  • 参数说明 inputSampleRate:输入语音采样率, 具体参考 YOUME_SAMPLE_RATE类型定义 mixedCallbackSampleRate:mix后输出语音采样率, 具体参考 YOUME_SAMPLE_RATE类型定义

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

输入音频数据

  • 语法

    public  static boolean inputAudioFrameEx(byte[] data, int len, long timestamp, int channelnum, boolean binterleaved)
  • 参数说明 data: 指向PCM数据的缓冲区 len: 音频数据的大小 timestamp: 时间戳,单位毫秒 channelnum: 声道数,1:单声道,2:双声道,其它非法 binterleaved: 音频数据打包格式(仅对双声道有效)

  • 返回值 成功/失败

输入音频数据混音

  • 功能描述 将多路音频数据流混合到麦克风和输出音频的音轨里面。

  • 语法

    public static boolean inputAudioFrameForMix(int streamId, byte[] data, int len, YMAudioFrameInfo frameInfo, long timestamp)
  • 参数说明 streamId:音频数据的流id data:指向PCM数据的缓冲区 len:音频数据的大小 frameInfo:音频数据的格式信息 timestamp:时间戳

  • 返回值 true:表示混音成功,false:表示混音失败

输入视频数据

  • 功能描述 视频数据输入(房间内其它用户会收到YOUME_EVENT_OTHERS_VIDEO_INPUT_START事件)

  • 语法

    public static boolean inputVideoFrame(byte[] data, int len, int width, int height, int fmt, int rotation, int mirror, long timestamp)
  • 参数说明 data: 视频帧数据 len: 视频数据大小 width: 视频图像宽 height: 视频图像高 fmt: 视频格式 rotation: 视频旋转角度 mirror: 是否镜像 timestamp: 时间戳,单位毫秒

  • 返回值 成功/失败

输入加密视频数据,支持大小流

  • 功能描述 视频数据输入(房间内其它用户会收到YOUME_EVENT_OTHERS_VIDEO_INPUT_START事件)

  • 语法

    public static boolean inputVideoFrameEncrypt(byte[] data, int len, int width, int height, int fmt, int rotation, int mirror, long timestamp, int streamID)
  • 参数说明 data: 视频帧数据 len: 视频数据大小 width: 视频图像宽 height: 视频图像高 fmt: 视频格式 rotation: 视频旋转角度 mirror: 是否镜像 timestamp: 时间戳,单位毫秒 streamID: 表示大小流ID

  • 返回值
    成功/失败

输入纹理数据

  • 语法

    public static boolean inputVideoFrameGLES(int texture, float[] matrix, int width, int height, int fmt, int rotation, int mirror, long timestamp) 
  • 参数说明 texture: 纹理ID, 必须使用sdk共享eglContext创建 matrix: texture矩阵坐标,可为null float: 视频数据大小 width: 视频图像宽 height: 视频图像高 fmt: 视频格式 rotation: 视频旋转角度 mirror: 是否镜像 timestamp: 时间戳,单位毫秒

  • 返回值 成功/失败

停止视频输入

  • 功能描述 停止视频数据输入(在inputVideoFrame之后调用,房间内其它用户会收到YOUME_EVENT_OTHERS_VIDEO_INPUT_STOP事件)

  • 语法
    public void stopInputVideoFrame()

共享流视频数据输入

  • 功能描述 共享视频数据输入,不需要sdk来进行预览,和摄像头视频流一起发送出去

  • 语法

    public static boolean inputVideoFrameForShare(byte[] data, int len, int width, int height, int fmt, int rotation, int mirror, long timestamp)
  • 参数说明 data:视频帧数据 len:视频数据大小 width:视频图像宽 height:视频图像高 fmt:视频格式 rotation:视频角度 mirror:镜像 timestamp:时间戳

  • 返回值 true:表示输入共享流数据成功,false:表示输入共享流数据失败

共享流数据输入纹理

  • 功能描述 共享视频数据输入(不需要sdk来进行预览,和摄像头视频流一起发送出去)

  • 语法

    public static boolean inputVideoFrameGLESForshare(int texture, float[]matrix, int width, int height, int fmt, int rotation, int mirror, long timestamp)
  • 参数说明 texture:纹理ID matrix:纹理矩阵坐标 width:视频图像宽 height:视频图像高 fmt:视频格式 rotation:视频角度 mirror:镜像 timestamp:时间戳

  • 返回值 true:输入共享流输入成功, false:输入共享流失败

停止共享流输入

  • 语法
    public static void stopInputVideoFrameForShare()

美颜

内置美颜

开启美颜

打开摄像头之前调用

  • 语法

    public static void openBeautify(boolean open)
  • 参数说明 open: true-开启美颜,false-关闭美颜

设置美颜强度

  • 语法

    public static void setBeautyLevel(float level) ;
  • 参数说明 level: 美颜参数,0.0 - 1.0 ,默认为0,几乎没有美颜效果,0.5左右效果明显

录屏模块接口

接口在ScreenRecorder中。该录屏接口要求系统Android 5.0及以上,在录屏开始时需要申请录屏权限,用户允许后开始录屏,由于系统隐私设置,录屏数据通过录屏数据接口交给SDK。

录屏初始化

  • 语法

    public static void init(Context env)
  • 参数说明 env: activity上下文变量

录屏分辨率设置

  • 语法

    public static void setResolution(int width, int height)
  • 参数说明 width:视频宽 height:视频高

录屏帧率设置

  • 语法

    public static void setFps(int fps)
  • 参数说明 fps:录屏帧率

开始录屏

  • 语法

    public static boolean startScreenRecorder() 
  • 返回值
    true 成功,false 失败

停止录屏

  • 语法

    public static boolean stopScreenRecorder()
  • 返回值
    true 成功,false 失败

录屏数据接口

  • 语法

    protected void onActivityResult(int requestCode, int resultCode, Intent data)
  • 参考demo
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == ScreenRecorder.SCREEN_RECODER_REQUEST_CODE) {
            if (resultCode == Activity.RESULT_OK) {
                ScreenRecorder.onActivityResult(requestCode, resultCode, data);
            }else {
                isOpenShare = false;
            }
        }
    }

设置屏幕共享上下文

  • 语法

    public static native void setScreenSharedEGLContext(Object gles);
  • 参数说明 gles:OpenGL上下文

自定义滤镜

设置滤镜回调

  • 功能描述 设置视频纹理自定义处理回调

  • 语法

    public static void setVideoMixerFilterListener(VideoMixerFilterListener listener)
  • 参数说明 listener: 回调类对象,详细请参考VideoMixerFilterListener

设置外部滤镜回调

  • 功能描述 打开/关闭 外部扩展滤镜回调

  • 语法

    public static native int setExternalFilterEnabled(boolean enabled);
  • 参数说明 enabled:true表示打开回调,false表示关闭回调

  • 返回值 错误码,0 - 表示成功,其他 - 具体错误码

设置网络

设置是否使用TCP

  • 功能描述 设置是否使用TCP模式来收发数据,针对特殊网络没有UDP端口使用,必须在加入房间之前调用

  • 语法

    public static native setTCPMode(boolean bUseTcp);
  • 参数说明 bUseTcp:是否使用

  • 返回值 如果成功则返回YOUME_SUCCESS,其他参考YouMeErrorCode类型定义

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

  • 功能描述 设置是否允许使用移动网络。在WIFI和移动网络都可用的情况下会优先使用WIFI,在没有WIFI的情况下,如果设置允许使用移动网络,那么会使用移动网络进行语音通信,否则通信会失败。

  • 语法

    public static native void setUseMobileNetworkEnabled (boolean bEnabled);
  • 参数说明 bEnabled:true——允许使用移动网络,false——禁止使用移动网络。

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

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

  • 语法

    public static native boolean getUseMobileNetworkEnabled ();
  • 返回值 true——允许使用移动网络,false——禁止使用移动网络,默认情况下允许使用移动网络。

通话管理

暂停通话

  • 功能描述 暂停通话,释放对麦克风等设备资源的占用。当需要用第三方模块临时录音时,可调用这个接口。

  • 语法

    public static native int pauseChannel();
  • 返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义

  • 异步回调

    void onEvent(int eventType, int iErrorCode, String roomid, Object param);
  • 事件类型 主要回调事件: YOUME_EVENT_PAUSED - 暂停语音频道完成

恢复通话

  • 功能描述 恢复通话,调用PauseChannel暂停通话后,可调用这个接口恢复通话。

  • 语法

    public static native int resumeChannel();
  • 返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义

  • 异步回调

    void onEvent(int eventType, int iErrorCode, String roomid, Object param);
  • 事件回调 主要回调事件: YOUME_EVENT_RESUMED - 恢复语音频道完成

设置服务器区域

  • 功能描述 设置首选连接服务器的区域码.

  • 语法

    public static native void setServerRegion (int region, String extServerName, boolean bAppend);
  • 参数说明 region:如果YOUME_RTC_SERVER_REGION定义的区域码不能满足要求,可以把这个参数设为 RTC_EXT_SERVER,然后通过后面的参数regionName 设置一个自定的区域值(如中国用 "cn" 或者 “ch"表示),然后把这个自定义的区域值同步给游密,我们将通过后台配置映射到最佳区域的服务器。 extServerName:自定义的扩展的服务器区域名。不能为null,可为空字符串“”。只有前一个参数serverRegionId设为RTC_EXT_SERVER时,此参数才有效(否则都将当空字符串“”处理)。 bAppend:true表示添加,false表示替换。

安全验证码

设置安全验证码V3版本

  • 功能描述 设置身份验证的token,需要配合后台接口。

  • 语法

    public static native void setTokenV3( String strToken, long timeStamp );
  • token计算方式 采用SHA1加密算法,token=sha1(apikey+appkey+roomid+userid+timestamp)。 token由于涉及安全问题,正式使用在服务端进行计算

  • 参数说明 strToken:身份验证用token,设置为NULL或者空字符串,清空token值,不进行身份验证。 timeStamp:用户加入房间的时间,单位s。

发送消息

广播消息

  • 功能描述 在语音频道内广播消息。

  • 语法

    public static native int sendMessage( String  pChannelID, String pContent );
  • 参数说明 pChannelID:频道ID(自己需要进入这个频道)。 pContent:消息内容-文本串。

  • 返回值 负数表示错误码,正数表示回调requestID,用于标识这次消息发送

  • 异步回调

    void onEvent(int event, int iErrorCode, String roomid, Object param);
  • 事件类型 event:YOUME_EVENT_SEND_MESSAGE_RESULT: 发送消息的结果回调,param为requestID的字符串 event:YOUME_EVENT_MESSAGE_NOTIFY:频道内其他人收到消息的通知。param为文本内容

点对点发送消息

  • 功能描述 在语音频道内,向房间内用户发送消息。

  • 语法

    public static native int sendMessageToUser( String  pChannelID, String pContent, String pUserID  );
  • 参数说明 pChannelID:频道ID(自己需要进入这个频道)。 pContent:消息内容-文本串。 pUserID:房间用户ID,如果为空,则表示向房间广播消息

  • 返回值 负数表示错误码,正数表示回调requestID,用于标识这次消息发送

  • 异步回调

    void onEvent(int event, int iErrorCode, String roomid, Object param);
  • 事件类型 event:YOUME_EVENT_SEND_MESSAGE_RESULT: 发送消息的结果回调,param为requestID的字符串 event:YOUME_EVENT_MESSAGE_NOTIFY:频道内其他人收到消息的通知。param为文本内容

设置自定义消息回调

  • 语法

    public static void setRecvCustomDataCallback (YouMeCustomDataCallbackInterface callback)
  • 参数说明 callback: 收到其它人自定义数据的回调对象,详细请参考YouMeCustomDataCallbackInterface

  • 回调接口

    public void onRecvCustomData(byte[] data, long timestamp);
  • 回调接口参数

    data: 视频帧数据 timestamp: 时间戳,单位毫秒

输入自定义数据

  • 语法

    public static int inputCustomData(byte[] data,int len,long timestamp)
  • 参数说明 data: 自定义数据,要广播的自定义数据 len: 数据长度,不能大于1024 timestamp: 时间戳

点对点输入自定义数据

  • 语法

    public static int inputCustomDataToUser(byte[] data,int len,long timestamp, String userId)
  • 参数说明 data: 自定义数据,要广播的自定义数据 len: 数据长度,不能大于1024 timestamp: 时间戳 userId: 接收端用户

翻译

翻译文本

  • 功能描述 翻译一段文字为指定语言。

  • 语法

    public static native int translateText(  String text, int destLangCode, int srcLangCode);
  • 参数说明 text: 要翻译的内容。 destLangCode:要翻译成什么语言。 srcLangCode:要翻译的是什么语言。

  • 返回值 如果返回值<=0,则表示错误码。具体参见YouMeErrorCode类型定义。如果>0,则表示返回本次请求的requestID( 翻译请求的ID,用于在回调中确定翻译结果是对应哪次请求)。

  • 回调函数YouMeCallBackInterface 接口类中,回调函数如下:

    public void onTranslateTextComplete( int errorcode, int requestID, String text, int srcLangCode, int destLangCode );
  • 回调函数参数说明 errorcode:错误码 requestID:请求ID(与translateText接口输出参数requestID一致) text:翻译结果 srcLangCode:源语言编码 destLangCode:目标语言编码

直播业务

指定讲话频道

  • 功能描述 多频道模式下,指定当前要讲话的频道,仅语音通话支持多频道。

  • 语法

    public static native int speakToChannel(String strRoomID);
  • 参数说明 strRoomID:全局唯一的频道标识,全局指在当前应用程序的范围内。

  • 返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义

  • 异步回调

    void onEvent(int eventType, int iErrorCode, String roomid, Object param);
  • 事件类型 涉及到的主要回调事件有: YOUME_EVENT_SPEAK_SUCCESS - 成功切入到指定语音频道 YOUME_EVENT_SPEAK_FAILED - 切入指定语音频道失败,可能原因是网络或服务器有问题

切换身份

  • 功能描述 切换身份(仅支持单频道模式,进入房间以后设置)

  • 语法

    public static native int setUserRole( int userRole );
  • 参数说明 userRole:用户身份

  • 返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义

获取身份

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

  • 语法

    public static native int getUserRole();
  • 返回值 用户身份,参见YouMeUserRole类型定义

RestApi——支持主播相关信息查询

  • 功能描述 Rest API , 向服务器请求额外数据。支持主播信息,主播排班等功能查询。详情参看文档<RequestRestAPI接口说明>

  • 语法

    public static native int requestRestApi(String strCommand, String strQueryBody);
  • 参数说明 requestID:回传id,回调的时候传回,标识消息。 strCommand:请求的命令字符串。 strQueryBody:请求需要的数据,json格式。

  • 返回值 返回值 >=0 表示requestID(回传id,回调的时候传回,标识消息),返回值<0表示失败错误码(详见YouMeErrorCode定义)

  • 异步回调

    void onRequestRestAPI(int requestID, int iErrorCode, String strQuery, String strResult);
  • 异步回调参数说明 requestID:回传ID iErrorCode:错误码 strQuery:回传查询请求,json格式。 strResult:查询结果,json格式。

设置时间戳

设置录音时间戳

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

  • 语法

    public static native void setRecordingTimeMs (int timeMs);
  • 参数说明 timeMs:当前游戏画面对应的时间点,单位为毫秒。

设置播放时间戳

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

  • 语法

    public static native void setPlayingTimeMs (int timeMs);
  • 参数说明 timeMs:当前游戏画面播放对应的时间点,单位为毫秒。