游密语音引擎SDK接口调用都会立即返回,凡是本身需要较长耗时的接口调用都会采用异步回调的方式,所有接口都可以在主线程中直接使用。接口大部分在api
对象中,部分特殊接口在NativeEngine
对象中。
功能描述 初始化引擎
语法
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回调
语法
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();
功能描述 初始化语音引擎,做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);
功能描述 反初始化引擎,可在退出游戏时调用,以释放SDK所有资源。
语法
public static native int unInit ();
功能描述 获取sdk版本信息和mcu登陆地址
语法
public static native String getSdkInfo();
功能描述 设置日志等级,在初始化接口之前调用
语法
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文件的路径
功能描述 将应用层的日志,写入到日志文件中
语法
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);
功能描述 加入语音频道(多频道模式,可以同时在多个语音频道里面)
语法
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);
功能描述 加入频道(单频道模式,每个时刻只能在一个频道里面)
语法
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);
功能描述 退出所有的语音频道(单频道模式下直接调用此函数离开频道即可)。
语法
public static native int leaveChannelAll ();
返回值 返回值请参考YouMeErrorCode类型定义。
异步回调
void onEvent(int eventType, int iErrorCode, String roomid, Object param);
功能描述 退出多频道模式下的某个语音频道
语法
public static native int leaveChannelMultiMode (String strChannelID);
参数说明
strChannelID
:频道ID,要保证全局唯一
返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义。
异步回调
void onEvent(int eventType, int iErrorCode, String roomid, Object param);
功能描述 通过频道id来查询自己是否在该频道内
语法
public static native boolean isInChannel( String strChannelID );
参数描述
strChannelID
: 指定频道ID
功能描述 查询自己是否加入了频道
语法
public static boolean isInChannel( );
功能描述 在指定的房间里,根据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);
功能描述 查询频道当前的用户列表, 并设置是否获取频道用户进出的通知。(必须自己在频道中)
语法
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——输出到听筒。
功能描述 打开/关闭音频输出。
语法
public static native void setSpeakerMute (boolean bOn);
bOn
:true——禁用音频输出,false——打开音频输出。语法
public static native boolean getSpeakerMute ();
功能描述 打开/关闭麦克风。
语法
public static native void setMicrophoneMute (boolean mute);
mute
:true——关闭麦克风,false——开启麦克风。语法
public static native boolean getMicrophoneMute ();
功能描述 设置是否通知别人,自己麦克风和音频输出的开关状态
public static native void setAutoSendStatus( boolean bAutoSend );
功能描述 设置当麦克风静音时,是否释放麦克风设备(需要在初始化成功后,加入房间之前调用)
语法
public static native int setReleaseMicWhenMute(boolean enabled);
参数说明
enabled
: true--当麦克风静音时,释放麦克风设备,此时允许第三方模块使用麦克风设备录音。在Android上,语音通过媒体音轨,而不是通话音轨输出;false--不管麦克风是否静音,麦克风设备都会被占用。
语法
public static native int setOtherMicMute (String strUserID, boolean status );
参数说明
strUserID
:要控制的用户ID
status
:是否静音。true:静音别人的麦克风,false:开启别人的麦克风
语法
public static native int setOtherSpeakerMute (String strUserID, boolean status );
参数说明
strUserID
:要控制的用户ID
status
:是否静音。true:关闭别人的音频输出,false:开启别人的音频输出
功能描述 打开摄像头,开始采集
语法
public static int StartCapturer()
public static void StopCapturer()
public static int SwitchCamera()
返回值
错误码,0 - 表示成功,其他 - 具体错误码
功能描述 设置下一次调用startCapture时,采用前置摄像头采集还是后置摄像头。 默认为前置摄像头。
public static void SetCaptureFrontCameraEnable(boolean enable)
enable
: true-前置摄像头,false-后置摄像头。语法
public static native boolean isCameraZoomSupported();
语法
public static native float setCameraZoomFactor(float zoomFactor);
参数说明
zoomFactor
: 1.0 表示原图像大小, 大于1.0 表示放大,默认1.0f
语法
public static native boolean isCameraFocusPositionInPreviewSupported();
左上角坐标(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
语法
public static native boolean isCameraTorchSupported();
语法
public static native boolean setCameraTorchOn(boolean isOn );
参数说明
isOn
: true 打开,false 关闭
语法
public static native boolean isCameraAutoFocusFaceModeSupported();
语法
public static native boolean setCameraAutoFocusFaceModeEnabled(boolean enabled);
参数说明
enabled
: true 打开,false 关闭
功能描述 横竖屏变化时,通知sdk把分辨率切换到横屏适配模式
语法
public static native int switchResolutionForLandscape();
功能描述 横竖屏变化时,通知sdk把分辨率切换到竖屏适配模式
语法
public static native int resetResolutionForPortrait();
语法
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帧
语法
public static native int setVideoPreviewFps(int fps);
参数说明
fps
:帧率(1-60),默认15帧
语法
public static native int setVideoLocalResolution(int width, int height);
参数说明
width
: 宽
height
: 高
功能描述 设置视频网络传输过程的分辨率(第一路高分辨率)。 接受方收到视频回调的分辨率,等于发送方设置的网络分辨率。
语法
public static native int setVideoNetResolution( int width, int height );
参数说明
width
: 宽
height
: 高
功能描述 设置视频上行码率,在进入房间前设置。
语法
public static native void setVideoCodeBitrate(int maxBitrate, int minBitrate);
maxBitrate
: 最大码率,单位kbps
minBitrate
: 最小码率,单位kbps语法
public static native int getCurrentVideoCodeBitrate( );
功能描述 设置是否使用VBR动态码率模式,允许一定范围的波动,可以提高移动时的画面稳定性。 需要在进入房间前设置。
语法
public static native int setVBR( boolean useVBR );
参数说明
useVBR
: 默认false,尽可能保持码率平稳,true 允许一定范围的波动,可以提高移动时的画面稳定性
功能描述 查询多个用户支持哪种流。
语法
public static int queryUsersVideoInfo(String []userArray);
参数说明
userArray
: 用户ID列表
返回值 错误码,0 - 表示成功,其他 - 具体错误码
回调
public void onEvent (int event, int error, String room, Object param)
功能描述 一次性订阅远端多个用户大流还是小流。如果设置了不支持的流,则采用默认的第一路流。
语法
public static int setUsersVideoInfo(String [] userArray, int [] resolutionArray);
参数说明
userArray
: 用户ID列表
resolutionArray
: 用户对应分辨率列表(0-第一路流/1-第二路流)
功能描述 设置视频网络传大小流自动调整。 需要在进入房间前设置。
语法
public static native int setVideoNetAdjustmode( int mode );
参数说明
mode
: 0: 自动调整;1: 上层设置大小流接收选择
功能描述 设置视频接收平滑模式开关,进入房间前设置或进房间后动态设置
语法
public static native int setVideoSmooth( int mode );
参数说明
mode
: 开关 0:关闭平滑,1:打开平滑
功能描述 实际根据是否开启硬解,同时还跟服务器配置及硬件是否支持有关,要全部满足条件才会使用硬解。如果硬编硬解失败,系统会自动切换回软解。 在进入房间前设置。
语法
public static native void setVideoHardwareCodeEnable( boolean bEnable );
bEnable
: true:开启,false:不开启功能描述 获取系统当前是否开启硬编硬解
语法
public static native boolean getVideoHardwareCodeEnable( );
功能描述 设置视频回调方式,默认为false,开启硬编,同时回调opengl纹理方式。设置为true,则关闭硬编,回调yuv格式
语法
public static native int setVideoFrameRawCbEnabled(boolean enabled);
参数说明
enabled
: true 打开,false 关闭,默认关闭
功能描述 设置渲染接口,渲染从底层接收的视频流。在加入房间后设置。
语法
public static void setVideoFrameCallback( VideoMgr.VideoFrameCallback callback )
callback
:视频数据回调接口,用于渲染视频 语法
public static native int enableLocalVideoSend(boolean enable);
参数说明
enable
:true 发送本地视频,false 不发送本地视频
功能描述 设置无视频帧渲染的等待超时时间。连接中的视频,超过设置的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 - 恢复不屏蔽
功能描述 设置是否回调视频解码前H264数据,需要在加入房间之前设置
public static void setVideoPreDecodeCallbackEnable(YouMeVideoPreDecodeCallbackInterface callback, boolean needDecodeandRender);
callback
: 回调方法
needDecodeandRender
:是否需要解码并渲染:true 需要;false 不需要语法
public static native int setVideoDecodeRawCbEnabled(boolean enabled);
参数说明
enabled
:true 打开,false 关闭,默认关闭
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动态码率模式,允许一定范围的波动,可以提高移动时的画面稳定性。 在进入房间前设置。
语法
public static int setVBRForSecond( boolean useVBR );
参数说明
useVBR
: 默认false,尽可能保持码率平稳,true 允许一定范围的波动,可以提高移动时的画面稳定性
功能描述 设置小流帧率 (如果大于大流帧率,以大流帧率为准),在进入房间之前设置
语法
public static native int setVideoFpsForSecond(int fps);
fps
:帧率(1-30),默认15帧功能描述 设置共享流编码分辨率,在加入房间之前设置。
语法
public static native int setVideoNetResolutionForShare( int width, int height );
参数说明
width
:编码分辨率宽
height
:编码分辨率高
功能描述 设置共享视频数据上行的码率的上下限,在进入房间之前设置
语法
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动态码率
语法
public static native int setVideoFpsForShare(int fps);
参数说明
fps
:帧率(1-30),默认15帧
功能描述 获取系统是否使用OpenGL来渲染视频
语法
public static native boolean getUseGL( );
功能描述 回调的视频数据,会渲染到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 - 具体错误码
语法
public void setLocalUserId(String userId)
userId
:本端的userid。本地视频或者合流视频画面显示到用本地userId注册的视图上。语法
public int deleteRender(String userId)
参数说明
userId
: userId 用户ID
public void deleteAllRender()
public static Object setSharedEGLContext()
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 public static void removeMixAllOverlayVideo()
功能描述 混流后视频数据已YUV420P格式回调到外部
语法
public static boolean setOpenVideoMixerYUVCallBack(boolean enabled)
参数说明
enabled
: true-打开,false-关闭
功能描述 设置视频混流完成回调YUV格式数据
public static boolean setVideoMixerRawCallbackEnabled(boolean enabled)
参数说明
enabled
: 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 ();
功能描述 获取当前程序输出音量大小,此音量值为程序内部的音量,与系统音量相乘得到程序使用的实际音量。
语法
public static native int setListenOtherVoice (String strUserID, boolean on );
strUserID
:要控制的用户ID。
on
:true表示开启接收指定用户的语音,false表示屏蔽指定用户的语音。功能描述 设置是否开启语音检测回调。开启后频道内有人正在讲话与结束讲话都会发起相应回调通知。
语法
public static native int setVadCallbackEnabled (boolean enabled);
参数说明
enabled
:true——打开,false——关闭。
功能描述 设置是否开启本端采集音量回调, 并设置相应的参数,在加入房间前设置。
语法
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 不监听。
功能描述 设置插入耳机时,是否自动退出系统通话模式(禁用手机硬件提供的回声消除等信号前处理)。 系统提供的前处理效果包括回声消除、自动增益等,有助于抑制背景音乐等回声噪音,减少系统资源消耗。 由于插入耳机可从物理上阻断回声产生,故可设置禁用该效果以保留背景音乐的原生音质效果。默认为false,在初始化之后、加入房间之前调用。 注:Windows和macOS不支持该接口。
语法
public static native int setExitCommModeWhenHeadsetPlugin(boolean enabled);
参数说明
enabled
:true 当插入耳机时,自动禁用系统硬件信号前处理,拔出时还原,false 插拔耳机不做处理.
功能描述 设置系统通话模式,优先级最高.默认使用服务器后台配置项 Windows和macOS不支持该接口 在初始化之后、加入房间之前调用
语法
public static native int setCommMode(boolean enabled);
参数说明
enabled
:true 启动系统通话模式,false 禁用系统通话模式
功能描述 设置是否开启混响音效,这个主要对主播/指挥有用。
语法
public static native int setReverbEnabled (boolean enabled);
参数说明
enabled
:true——打开,false——关闭。
功能描述 设置是否开启音频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
:音频接口回调对象功能描述 播放指定的音乐文件。播放的音乐将会通过音频设备输出,并和语音混合后发送给接收方。这个功能适合于主播/指挥等使用。
语法
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);
功能描述 停止播放当前正在播放的背景音乐。 这是一个同步调用接口,函数返回时,音乐播放也就停止了。
语法
public static native int stopBackgroundMusic ();
功能描述 如果当前正在播放背景音乐的话,暂停播放
语法
public static native int pauseBackgroundMusic();
功能描述 如果当前正在播放背景音乐的话,恢复播放
语法
public static native int resumeBackgroundMusic();
语法
public static native boolean isBackgroundMusicPlaying();
功能描述 设定背景音乐的音量。这个接口用于调整背景音乐和语音之间的相对音量,使得背景音乐和语音混合听起来协调。 这是一个同步调用接口。
语法
public static native int setBackgroundMusicVolume (int vol);
参数说明
vol
:背景音乐的音量,范围 [0-100]。
功能描述
设置音视频统计数据时间间隔,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类型定义
语法
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
:时间戳
功能描述 视频数据输入(房间内其它用户会收到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
:时间戳
功能描述 共享视频数据输入(不需要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
:时间戳
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()
语法
public static boolean stopScreenRecorder()
语法
protected void onActivityResult(int requestCode, int resultCode, Intent data)
@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表示关闭回调
功能描述 设置是否使用TCP模式来收发数据,针对特殊网络没有UDP端口使用,必须在加入房间之前调用
语法
public static native setTCPMode(boolean bUseTcp);
参数说明
bUseTcp
:是否使用
功能描述 设置是否允许使用移动网络。在WIFI和移动网络都可用的情况下会优先使用WIFI,在没有WIFI的情况下,如果设置允许使用移动网络,那么会使用移动网络进行语音通信,否则通信会失败。
语法
public static native void setUseMobileNetworkEnabled (boolean bEnabled);
bEnabled
:true——允许使用移动网络,false——禁止使用移动网络。功能描述 获取是否允许SDK在没有WIFI的情况使用移动网络进行语音通信。
语法
public static native boolean getUseMobileNetworkEnabled ();
功能描述 暂停通话,释放对麦克风等设备资源的占用。当需要用第三方模块临时录音时,可调用这个接口。
语法
public static native int pauseChannel();
返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义。
异步回调
void onEvent(int eventType, int iErrorCode, String roomid, Object param);
功能描述 恢复通话,调用PauseChannel暂停通话后,可调用这个接口恢复通话。
语法
public static native int resumeChannel();
返回值 返回YOUME_SUCCESS才会有异步回调通知。其它返回值请参考YouMeErrorCode类型定义。
异步回调
void onEvent(int eventType, int iErrorCode, String roomid, Object param);
功能描述 设置首选连接服务器的区域码.
语法
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表示替换。功能描述 设置身份验证的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);
功能描述 在语音频道内,向房间内用户发送消息。
语法
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);
语法
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);
功能描述 切换身份(仅支持单频道模式,进入房间以后设置)
语法
public static native int setUserRole( int userRole );
参数说明
userRole
:用户身份
功能描述 获取身份(仅支持单频道模式)
语法
public static native int getUserRole();
功能描述 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
:当前游戏画面播放对应的时间点,单位为毫秒。