Video SDK for Android API接口手册

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

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

新增接口(适用于3.4.1.1083版本及以上)

初始化引擎

  • 功能描述
    初始化引擎。

  • 语法

    public static  YouMeLiveVideoEngine initSDK(String strAPPKey, String strAPPSecret, int serverRegionId, String strExtServerRegionName, Context context);
  • 参数说明
    strAPPKey:在申请SDK注册时得到的App Key,也可凭账号密码到https://console.youme.im/查询。
    strAPPSecret:在申请SDK注册时得到的App Secret,也可凭账号密码到https://console.youme.im/查询。
    serverRegionId:可选的服务器区域。
    strExtServerRegionName:自定义的扩展的服务器区域名,可参考 setServerRegion 接口中 regionName 参数说明。可选扩展字段, 如不清楚,传入: @""。
    context:安卓Activity上下文。

销毁引擎

  • 功能描述
    销毁引擎。

  • 语法
    public static  void destroy();

设置回调通知的对象

  • 功能描述
    设置回调通知的对象。

  • 语法

    public static  void setCallback(IYouMeLiveVideoInterface callback);
  • 参数说明
    callback:实现了IYouMeLiveVideoInterface的对象,用于事件回调。

设置服务器模式

  • 功能描述
    设置服务器模式。

  • 语法

    public static  void setServerMode(int mode);
  • 参数说明
    mode:服务器模式,设定为1为测试服,正式上线环境无需设置。

设置用户角色

  • 功能描述
    设置用户角色(仅支持单频道模式,进入房间以后设置)。

  • 语法

    public static   int setClientRole(int role);
  • 参数说明
    role:用户身份。

设置频道场景

  • 功能描述
    设置频道场景。

  • 语法

    public static void setChannelProfile(YouMeConst.ChannelProfile profile);
  • 参数说明
    profile:频道场景,分别为:通信场景(默认)、直播场景。

本地加入频道

  • 功能描述
    本地加入频道,加入频道默认用户角色为观众角色,发布流时切换为主播角色。

  • 语法

    public static int joinChannel(String userId, String channelName, boolean autoRecv);
  • 参数说明
    channelName:频道ID。
    userId:用户ID,要保证频道内不重复。
    autoRecv:是否自动接收频道内其他人的视频,true:自动接收,false:不接收。

本地离开频道

  • 功能描述
    本地离开频道。
  • 语法
    public static int leaveChannel();

设置开启/关闭扬声器播放

  • 功能描述
    设置开启/关闭扬声器播放。

  • 语法

    public static int setEnableSpeakerphone(boolean open);
  • 参数说明
    open:设置是否开启扬声器播放,true:输出到扬声器,false:输出到听筒。

设置本地播放的远端用户的音量

  • 功能描述
    设置本地播放的远端用户的音量。

  • 语法

    public static void adjustPlaybackSignalVolume(int volume);
  • 参数说明
    volume:播放音量,范围[0-100]。

是否启动本地音频采集模块

  • 功能描述
    是否启动本地音频采集模块。

  • 语法

    public static void enableLocalAudio(boolean enabled);
  • 参数说明
    enabled:是否启动音频采集模块标志。

取消或恢复发布本地音频流

  • 功能描述
    取消或恢复发布本地音频流。

  • 语法

    public static void muteLocalAudioStream(boolean muted);
  • 参数说明
    muted:是否取消发布本地音频流,YES: 取消发布,NO: 发布。

设置是否订阅及播放远端音频流

  • 功能描述
    设置是否订阅及播放远端音频流。

  • 语法

    public static void muteRemoteAudioStream(String userId, boolean muted);
  • 参数说明
    userId:用户ID。
    muted:是否取消订阅指定远端用户的音频流,YES: 取消订阅,NO: 订阅(默认)。

是否启动本地视频采集模块

  • 功能描述
    是否启动本地视频采集模块。

  • 语法

    public static void enableLocalVideo(boolean enabled);
  • 参数说明
    enabled:是否启动视频采集模块标志。

设置视频编码器配置

  • 功能描述
    设置视频编码器配置。

  • 语法

    public static int setVideoEncoderConfiguration(VideoEncoderConfiguration config);
  • 参数说明
    config:编码器配置数据结构YMVideoEncoderConfiguration的实例,包括分辨率、帧率、码率。

创建游密视频渲染视图

  • 功能描述
    创建游密视频渲染视图。

  • 语法

    public static SurfaceViewRenderer CreateRendererView(Context context, RendererCommon.ScalingType type, boolean isMirror);
  • 参数说明
    context:安卓Activity上下文。
    type:填充模式,详见RendererCommon.java中的定义。
    isMirror:是否镜像标志。

绑定本地视频渲染视图,并指定视频填充模式

  • 功能描述
    绑定本地视频渲染视图,并指定视频填充模式。

  • 语法

    public static int setupLocalVideo(String userId, SurfaceViewRenderer videoView);
  • 参数说明
    videoView:视频渲染视图。
    userId:本端用户ID。

删除本地视频渲染视图

  • 功能描述
    删除本地视频渲染视图。

  • 语法

    public static int deleteLocalVideo(String userId);
  • 参数说明
    userId:用户ID。

绑定远端视频渲染视图,并指定视频填充模式

  • 功能描述
    绑定远端视频渲染视图,并指定视频填充模式。

  • 语法

    public static int setupRemoteVideo(String userId, SurfaceViewRenderer videoView);
  • 参数说明
    videoView:视频渲染视图。
    userId:远端用户ID。

删除远端视频渲染视图

  • 功能描述
    删除远端视频渲染视图。

  • 语法

    public static int deleteRemoteVideo(String userId);
  • 参数说明
    userId:用户ID。

取消或恢复发布本地视频流

  • 功能描述
    取消或恢复发布本地视频流。

  • 语法

    public static void muteLocalVideoStream(boolean muted);
  • 参数说明
    muted:是否取消发布本地视频流,YES: 取消发布,NO: 发布。

设置是否订阅及播放远端视频流

  • 功能描述
    设置是否订阅及播放远端视频流。

  • 语法

    public static void muteRemoteVideoStream(String userId, boolean muted);
  • 参数说明
    userId:用户ID muted:是否取消订阅指定远端用户的视频流,YES: 取消订阅,NO: 订阅(默认)。

本地加入频道成功回调

  • 功能描述
    本地加入频道成功回调。

  • 语法

    public void onJoinChannelSuccess(String channel, String userId);
  • 参数说明
    channel:频道名称。
    userId:用户ID。

本地离开频道回调

  • 功能描述
    本地离开频道回调。

  • 语法
    public void onLeaveChannel();

远端用户发布流回调

  • 功能描述
    远端用户发布流回调。

  • 语法

    public void onUserJoined(String userId);
  • 参数说明
    userId:用户ID。

远端用户取消发布流回调

  • 功能描述
    远端用户取消发布流回调。

  • 语法

    public void onUserOffline(String userId);
  • 参数说明
    userId:用户ID。

远端用户停止/恢复发送音频流回调

  • 功能描述
    远端用户停止/恢复发送音频流回调。

  • 语法

    public void onUserMuteAudio(String userId, boolean muted);
  • 参数说明
    userId:用户ID。
    muted:是否停止发送音频流。

远端用户停止/恢复发送视频流回调

  • 功能描述
    远端用户停止/恢复发送视频流回调。

  • 语法

    public void onUserMuteVideo(String userId, boolean muted);
  • 参数说明
    userId:用户ID。
    muted:是否停止发送视频流。

一般事件通知

  • 功能描述
    一般事件通知。

  • 语法

    public void onEvent(int eventType, int iErrorCode, String roomId, Object param);
  • 参数说明
    eventType:事件类型。
    iErrorCode:错误码。
    roomId:时间发生的房间号。
    param:其他参数,根据eventType不同而不同。

获取频道用户列表回调

  • 功能描述
    获取频道用户列表回调。

  • 语法

    public  void onMemberChange(String channelID, MemberChange[] changeList, boolean isUpdate);
  • 参数说明
    channelID:频道号。
    changeList:更改列表,NSArray<MemberChangeOC>
    isUpdate:true-表示进房间后,有人进出的通知,false表示进房间时的当前user列表。

RestAPI回调

  • 功能描述
    RestAPI回调。

  • 语法

    public  void onRequestRestAPI(int requestID, int iErrorCode , String strQuery, String strResult);
  • 参数说明
    requestID:调用查询时返回的requestID,可以用于标识一个查询。
    iErrorCode:查询结果的错误码。
    strQuery:查询的请求,json字符串。
    strResult:查询的结果,json字符串。

收到抢麦通知和连麦邀请通知后的回调

  • 功能描述
    收到抢麦通知和连麦邀请通知后,回调该接口。

  • 语法

    public  void onBroadcast(int bc, String room, String param1, String param2, String content);
  • 参数说明
    bc:抢麦与连麦的状态。
    room:抢麦连麦所在的频道。
    param1:抢到麦的用户或者发起连麦的用户。
    param2:收到连麦邀请的用户,抢麦场景为空。
    content:数据内容。

音视频数据统计回调

  • 功能描述
    音视频数据统计回调。

  • 语法

    public  void onAVStatisticNew(int avType,  String userID, int value, String param);
  • 参数说明
    avType:数据类型。
    userID:用户ID。
    param:其他参数,根据type不同而不同。

翻译完成,回调翻译结果

  • 功能描述
    翻译完成,回调翻译结果。

  • 语法

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

以下接口适用于所有版本

初始化相关

判断是否初始化完成

  • 语法

    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。

  • 备注
    当isUpdate为false时,假设当前房间内用户数是curCount,
    1、当传入的maxCount >= curCount时:
    OnMemberChange回调一次,返回房间内所有curCount个用户。
    2、当传入的maxCount < curCount时,OnMemberChange回调两次:
    第一次返回maxCount个用户;
    第二次返回其余curCount-maxCount个用户。
    3、当传入的maxCount = -1时,OnMemberChange回调两次:
    第一次只返回一个用户(按照用户id排序的最小值);
    第二次返回房间内剩余的curCount-1个用户。

音频设备管理

切换语音输出设备

  • 功能描述
    默认输出到扬声器,在加入房间成功后设置。(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 失败。

设置摄像头输出图像的旋转角度

  • 功能描述
    设置摄像头输出图像的旋转角度。当根据自适应算法算出的旋转角度有问题时可以调用该接口进行强制设置角度。 如果未主动设置旋转角度,将按照自适应算法算出的旋转角度进行旋转。

  • 语法

    public static boolean setCameraOutputRotation(int rotation);
  • 参数说明
    rotation: 摄像头输出图像的旋转角度,设置的旋转角度必须为90度的整数倍,否则提示设置失败,且值的范围为[0,360]。

  • 返回值
    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: 特定用户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:音量最大时对应的级别,需大于1,最大可设100。根据实际需要设置小于100的值可以减少回调的次数(注意设置较高的值可能会产生大量回调,特别在Unity上会影响其它事件到达,一般建议不超过30)。比如你只在UI上呈现10级的音量变化,那就设10就可以了。设 0 表示关闭回调。

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

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

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

  • 语法

    public static native int setFarendVoiceLevelCallback(int maxLevel, int maxMixedLevel);
  • 参数说明
    maxLevel:音量最大时对应的级别,需大于1,最大可设100。比如你只在UI上呈现10级的音量变化,那就设10就可以了。设 0 表示关闭回调。
    maxMixedLevel:所有用户音量混合后的最大时对应的级别,需大于1,最大可设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_Mix
    bOutputToSpeaker: 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:音频接口回调对象。

战歌管理

播放战歌

  • 功能描述
    播放指定的音乐文件。播放的音乐将会通过音频设备输出,并和语音混合后发送给接收方。这个功能适合于主播/指挥等使用。建议使用mp3格式的文件,目前wav、flac格式的文件不支持。

  • 语法

    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。 注:需要在AndroidManifest.xml中增加以下服务:
<service android:name="com.youme.voiceengine.ScreenRecorderService" android:enabled="true" android:foregroundServiceType="mediaProjection" />

录屏初始化

  • 语法

    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 setGrabMicOption(String pChannelID, int mode, int maxAllowCount, int maxTalkTime, int voteTime);
  • 功能
    抢麦相关设置(抢麦活动发起前调用此接口进行设置)。

  • 参数说明
    pChannelID:抢麦活动的频道id。
    mode:抢麦模式(1:先到先得模式;2:按权重分配模式)。先到先得模式中,抢麦活动会持续,用户可以继续抢其他用户释放的麦。
    maxAllowCount:允许能抢到麦的最大人数(要大于0)。
    maxTalkTime:允许抢到麦后使用麦的最大时间(单位:秒,要大于0)。
    voteTime:抢麦仲裁时间(单位:秒,要大于0),过了X秒后服务器将进行仲裁谁最终获得麦(仅在按权重分配模式下有效)。

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

发起抢麦活动

  • 语法
public static native int startGrabMicAction(String pChannelID, String pContent);
  • 功能
    发起抢麦活动。接口需要加入房间后再调用。

  • 参数说明
    pChannelID:抢麦活动的频道id。
    pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。

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

停止抢麦活动

  • 语法
public static native int stopGrabMicAction(String pChannelID, String pContent);
  • 功能
    停止抢麦活动。先到先得模式下,抢麦成功后,调用停止抢麦不会把当前抢麦人踢下麦。

  • 参数说明
    pChannelID:抢麦活动的频道id。
    pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。

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

发起抢麦请求

  • 语法
YouMeErrorCode requestGrabMic(const char* pChannelID, int score, bool isAutoOpenMic, const char* pContent);
  • 功能
    发起抢麦请求。

  • 参数说明
    pChannelID:抢麦的频道id。
    score:积分(权重分配模式下有效,游戏根据自己实际情况设置)。
    isAutoOpenMic:抢麦成功后是否自动开启麦克风权限。
    pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。

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

释放抢到的麦

  • 语法
public static native int releaseGrabMic(String pChannelID);
  • 功能
    释放抢到的麦。

  • 参数说明
    pChannelID:抢麦的频道id。

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

连麦相关设置

  • 语法
public static native int setInviteMicOption(String pChannelID, int waitTimeout, int maxTalkTime);
  • 功能
    连麦相关设置(角色是频道的管理者或者主播时调用此接口进行频道内的连麦设置)。

  • 参数说明
    pChannelID:连麦的频道id。
    waitTimeout:等待对方响应超时时间(秒)。
    maxTalkTime:最大通话时间(秒)。

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

发起连麦请求

  • 语法
public static native int requestInviteMic(String pChannelID, String pUserID, String pContent);
  • 功能
    发起与某人的连麦请求(主动呼叫)。支持跨频道发起连麦。

  • 参数说明
    pUserID:被叫方的用户id。
    pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。

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

回应连麦请求

  • 语法
public static native int responseInviteMic(String pUserID, boolean isAccept, String pContent);
  • 功能
    对连麦请求做出回应(被动应答)。

  • 参数说明
    pUserID:主叫方的用户id。
    isAccept:是否同意连麦。
    pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。

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

停止连麦

  • 语法
public static native int stopInviteMic();

发送消息

广播消息

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

  • 语法

    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类型定义。

设置时间戳

设置录音时间戳

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

  • 语法

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

设置播放时间戳

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

  • 语法

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