本文介绍实时音视频Linux SDK Java engine接口说明。
目录
API  | 功能描述  | 
获取一个AliRTCLinuxEngine实例。  | |
销毁AliRTCLinuxEngine实例。  | |
模拟app server行为,本地生成单参数或多参数的token。  | |
模拟app server行为,本地生成单参数token,API考虑废弃,建议使用generateToken()。  | |
审核场景能力,设置视频帧的回调周期,不设置则默认每秒回调1帧。  | |
加入频道。  | |
加入频道。  | |
离开频道。  | |
查询是否允许推送camera track。  | |
查询是否允许推送screen track。  | |
查询是否允许推送audio track。  | |
查询是否允许推送simulcast (camera track)。  | |
启用外部视频输入源。  | |
输入外部输视频。  | |
设置是否启用外部音频输入推流。  | |
输入外部音频数据推流。  | |
设置外部输入音频推流混音音量。  | |
获取外部输入音频推流混音音量。  | |
发送rtp 媒体扩展信息。  | |
是否允许推送次要视频流。  | |
是否推送本地视频(摄像头)流。  | |
是否推送本地音频流。  | |
开始推送屏幕流。  | |
停止/恢复订阅特定远端用户的音频流, 用于会中调用, 会前调用无效。  | |
停止/恢复订阅远端用户的视频流, 用于会中调用, 会前调用无效。  | |
设置相机流视频编码属性。  | |
设置屏幕流视频编码属性。  | |
设置订阅相机流格式,大流或小流。  | |
停止或恢复本地视频数据发送。  | |
停止或恢复本地音频数据发送。  | |
设置用户角色  | |
JSON格式字符串进行自定义配置,如打开关闭dataChannel。  | |
通过dataChannel发送数据。  | |
设置音质。  | |
设置默认订阅视频流类型。  | |
入会后等待一段时间,若始终无人上线则回调OnError,错误码ERR_NO_PEOPLE。  | |
以观众模式入会后,若房间内的所有主播均下播,就立即回调OnError,错误码ERR_NO_PEOPLE。  | |
获取当前进程。  | |
获取进程间通信数据输入流。  | |
获取进程间创建通信连接的端点。  | |
获取进程间通信数据输出流。  | |
如果engine出现error,通过这个消息通知业务层。  | |
如果engine出现warning,通过这个消息通知业务层。  | |
加入频道结果。  | |
离开频道结果。  | |
远端用户(通信模式)/(互动模式,主播角色)加入频道回调。  | |
远端用户(通信模式)/(互动模式,主播角色)离开频道回调。  | |
远端用户的音视频流发生变化回调。  | |
相机流订阅情况变更回调。  | |
大小订阅情况变更回调。  | |
屏幕分享流订阅情况变更回调。  | |
屏幕分享推流变更回调。  | |
次要流推流变更回调。  | |
视频推流变更回调。  | |
音频推流变更回调。  | |
本地订阅音频数据回调。  | |
本地订阅音频混合数据回调。  | |
音频存档定制能力,分流音频转码AAC输出。  | |
音频存档定制能力,合流音频转码AAC输出。  | |
订阅的远端视频数据回调。  | |
订阅的远端视频裸流数据回调。  | |
收到媒体扩展信息回调。  | |
截图回调。  | |
混音前每一路远端用户的音频数据回调。  | |
当用户角色发生变化时通知。  | |
当dataChannel收到消息时。  | 
接口详情
createInstance
获取一个AliRTCLinuxEngine实例。
public static synchronized AliRTCLinuxEngine createInstance(AliRTCLinuxEngineListener listener, int lowPort, int highPort, String logPath, String coreServicePath, boolean h5mode, String extra) throws Exception{};参数说明
名称  | 类型  | 描述  | 
listener  | AliRTCLinuxEngineListener  | 回调对象,负责处理回调逻辑。  | 
lowPort  | int  | 端口号下限,lowPort~highPort之间的端口将被随机选择用于进程间通信  | 
highPort  | int  | 端口号上限  | 
logPath  | String  | SDK运行过程中,日志文件的保存路径  | 
coreServicePath  | String  | AliRtcCoreService的实际路径  | 
h5mode  | boolean  | h5兼容模式,一般false即可  | 
extra  | String  | 对SDK进行额外配置时传入的JSON格式字符串  | 
返回说明 AliRTCEngineInterface实例。
destroy
销毁AliRTCLinuxEngine实例。
public abstract void destroy();generateToken
模拟app server行为,本地生成单参数或多参数的token。
public abstract String generateToken(AuthInfo authInfo, String appkey);参数说明
名称  | 类型  | 描述  | 
authInfo  | AuthInfo  | 自定义配置信息,在计算token前需要填充好appid、nonce、timestamp。  | 
appkey  | String  | 与appid相对应,计算token所需要的key。  | 
返回说明 本地生成的token。
generateTokenV2
模拟app server行为,本地生成单参数token,API考虑废弃,建议使用generateToken()。
public abstract String generateTokenV2(AuthInfo authInfo);参数说明
名称  | 类型  | 描述  | 
authInfo  | AuthInfo  | 自定义配置信息,在计算token前需要填充好appid、nonce、timestamp。  | 
返回说明 本地生成的token。
setVideoCallbackPeriod
审核场景能力,设置视频帧的回调周期,不设置则默认每秒回调1帧。
public abstract boolean setVideoCallbackPeriod(int period);参数说明
名称  | 类型  | 描述  | 
period  | int  | 视频帧回调周期。  | 
返回说明 设置成功与否。
joinChannel[1/2]
加入频道。
public abstract int joinChannel(AuthInfo authInfo, JoinChannelConfig config) throws Exception;该接口是异步接口,是否成功加入频道,需要通过onJoinChannelResult回调判断。
参数说明
名称  | 类型  | 描述  | 
authInfo  | AuthInfo  | 认证信息,从App Server获取。  | 
userName  | JoinChannelConfig  | joinChannel时的设置项  | 
返回说明 0表示方法调用成功,非0表示方法调用失败。
joinChannel[2/2]
加入频道。
public abstract int joinChannel(String token, String channelId, String userId, String userName, JoinChannelConfig config);该接口是异步接口,是否成功加入频道,需要通过onJoinChannelResult回调判断。
参数说明
参数  | 类型  | 描述  | 
token  | String  | 单参数入会的鉴权信息。  | 
channelId  | String  | 入会频道,必须和产生Token的值一样。  | 
userId  | String  | 入会的userid,必须和产生token的值一样。  | 
userName  | String  | 用户的显示名称(不是用户ID)。  | 
config  | JoinChannelConfig  | joinChannel时的设置项  | 
返回说明 0表示方法调用成功,非0表示方法调用失败。
leaveChannel
离开频道。
public abstract int leaveChannel();返回说明 0表示方法调用成功,其他表示方法调用失败。
isLocalCameraPublishEnabled
查询是否允许推送camera track。
public abstract boolean isLocalCameraPublishEnabled();返回说明 true:允许;false:禁止。
isLocalScreenPublishEnabled
查询是否允许推送screen track。
public abstract boolean isLocalScreenPublishEnabled();返回说明 true:允许;false:禁止。
isLocalAudioPublishEnabled
查询是否允许推送audio track。
public abstract boolean isLocalAudioPublishEnabled();返回说明 true:允许;false:禁止。
isLocalSimulcastEnabled
查询是否允许推送simulcast (camera track)。
public abstract boolean isLocalSimulcastEnabled();返回说明 true:允许;false:禁止。
setExternalVideoSource
启用外部视频输入源。
public abstract int setExternalVideoSource(boolean enable, VideoSource source, RenderMode renderMode);启用后使用pushExternalVideoFrame接口输入视频数据。
参数说明
名称  | 类型  | 描述  | 
enable  | boolean  | true表示开启,false表示关闭。  | 
source  | VideoSource  | 流类型。  | 
renderMode  | RenderMode  | 渲染模式。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
pushExternalVideoFrame
输入外部输视频。
public abstract int pushExternalVideoFrame(VideoDataSample frame, VideoSource source);参数说明
名称  | 类型  | 描述  | 
frame  | VideoDataSample  | 帧数据。  | 
source  | VideoSource  | 流类型,目前输入视频类型只支持I420。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败,返回值为ERR_AUDIO_BUFFER_FULL时,可以调整控制发送速率。
setExternalAudioSource
设置是否启用外部音频输入推流。
public abstract int setExternalAudioSource(boolean enable, int sampleRate, int channelsPerFrame);可通过SetExternalAudioPublishVolume设置输入音频推流音量。
参数说明
名称  | 类型  | 描述  | 
enable  | boolean  | true 开启,false 关闭。  | 
sampleRate  | int  | 采样率 16k 48k...。  | 
channelsPerFrame  | int  | 采样率 16k 48k...。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
pushExternalAudioFrameRawData
输入外部音频数据推流。
public abstract int pushExternalAudioFrameRawData(byte[] audioSamples, int sampleLength, long timestamp);参数说明
名称  | 类型  | 描述  | 
audioSamples  | byte[]  | 音频数据。  | 
sampleLength  | int  | 音频数据长度。  | 
timestamp  | long  | 时间戳。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败,返回值为ERR_AUDIO_BUFFER_FULL时,需要在间隔投递数据时间长度后再次重试投。
setExternalAudioPublishVolume
设置外部输入音频推流混音音量。
public abstract int setExternalAudioPublishVolume(int volume);参数说明
名称  | 类型  | 描述  | 
volume  | int  | 音量 0-100。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
getExternalAudioPublishVolume
获取外部输入音频推流混音音量。
public abstract int getExternalAudioPublishVolume();返回说明 音量。
sendMediaExtensionMsg
发送rtp 媒体扩展信息。
public abstract int sendMediaExtensionMsg(byte[] message, int repeatCount, int delay, boolean isKeyFrame);参数说明
名称  | 类型  | 描述  | 
message  | byte[]  | 扩展信息内容,可以传递4K Bytes数据。  | 
repeatCount  | int  | 重复次数,用于防止网络丢包导致的消息丢失。  | 
delay  | int  | 延迟多久发出去,单位:毫秒。  | 
isKeyFrame  | boolean  | 是否只在关键帧上增加SEI。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
publishLocalDualStream
是否允许推送次要视频流。
public abstract int publishLocalDualStream(boolean enabled);次要视频流只在推送视频流的前提下才会推送,设置推送次要视频流时,请确认已通过publishLocalVideoStream方法开启视频流推送。
SDK默认设置不推送次要视频流,在加入频道前也可以调用此接口修改默认值,并在推送视频流时生效。
参数说明
名称  | 类型  | 描述  | 
enabled  | boolean  | 是否开启/关闭次要视频流推送; true:开启次要视频流推送,false:关闭次要视频流推送。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
publishLocalVideoStream
是否推送本地视频(摄像头)流。
public abstract int publishLocalVideoStream(boolean enabled);SDK默认设置推送视频流,在加入频道前也可以调用此接口修改默认值,并在加入频道成功时生效。
参数说明
名称  | 类型  | 描述  | 
enabled  | boolean  | 是否开启/关闭本地视频流推送; true:开启视频流推送,false:关闭视频流推送。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
publishLocalAudioStream
是否推送本地音频流。
public abstract int publishLocalAudioStream(boolean enabled);SDK默认设置推送音频流,在加入频道前也可以调用此接口修改默认值,并在加入频道成功时生效。
参数说明
名称  | 类型  | 描述  | 
enabled  | boolean  | 是否开启/关闭本地音频流推送; true:开启音频流推送,false:关闭音频流推送。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
publishScreenShareStream
开始推送屏幕流。
public abstract int publishScreenShareStream(boolean enabled);参数说明
名称  | 类型  | 描述  | 
enabled  | boolean  | 是否开启/关闭推送屏幕流; true:开启推送,false:关闭推送。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
subscribeRemoteAudioStream
停止/恢复订阅特定远端用户的音频流, 用于会中调用, 会前调用无效。
public abstract int subscribeRemoteAudioStream(String uid, boolean sub);参数说明
名称  | 类型  | 描述  | 
uid  | String  | 用户ID,从App server分配的唯一标示符。  | 
sub  | boolean  | 是否订阅远端用户的音频流;true:订阅指定用户的音频流,false:停止订阅指定用户的音频流  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
subscribeRemoteVideoStream
停止/恢复订阅远端用户的视频流, 用于会中调用, 会前调用无效。
public abstract int subscribeRemoteVideoStream(String uid, VideoTrack videoTrack, boolean sub);参数说明
名称  | 类型  | 描述  | 
uid  | const char*  | 用户ID,从App server分配的唯一标示符。  | 
videoTrack  | VideoTrack  | 视频流类型。- AliEngineVideoTrackNo:无效参数,设置不会有任何效果。- AliEngineVideoTrackCamera:相机流。- AliEngineVideoTrackScreen:屏幕共享流。- AliEngineVideoTrackBoth:相机流和屏幕共享流。  | 
sub  | boolean  | 是否订阅远端用户的音频流;true:订阅指定用户的音频流,false:停止订阅指定用户的音频流  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
setVideoEncoderConfiguration
设置相机流视频编码属性。
public abstract void setVideoEncoderConfiguration(AliEngineVideoEncoderConfiguration config);该方法用于设置相机流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等。所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。
该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次相机流视频编码属性,建议在入会前调用。
参数说明
名称  | 类型  | 描述  | 
config  | AliEngineVideoEncoderConfiguration  | 预定义的编码属性,详见AliEngineVideoEncoderConfiguration: 相机流视频编码属性设置类。  | 
setScreenShareEncoderConfiguration
设置屏幕流视频编码属性。
public abstract void setScreenShareEncoderConfiguration(AliEngineScreenShareEncoderConfiguration config);该方法用于设置相机流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等。所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。
该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次相机流视频编码属性,建议在入会前调用。
参数说明
名称  | 类型  | 描述  | 
config  | AliEngineScreenShareEncoderConfiguration  | 预定义的屏幕共享编码属性,详见AliEngineScreenShareEncoderConfiguration: 屏幕流编码属性设置类。  | 
setRemoteVideoStreamType
设置订阅相机流格式,大流或小流。
public abstract int setRemoteVideoStreamType(String uid, AliEngineVideoStreamType streamType);推流端当前默认不推送小流,只有发送端调用了 PublishLocalDualStream(true) 打开双流模式,接收端才可以选择订阅大流还是小流,否则订阅的只能是大流。
参数说明
名称  | 类型  | 描述  | 
uid  | String  | userId,从App server分配的唯一标示符  | 
streamType  | AliEngineVideoStreamType  | 流类型。- AliEngineVideoStreamTypeNone:无效参数,设置不会有任何效果。- AliEngineVideoStreamTypeHigh:大流。- AliEngineVideoStreamTypeLow:小流。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
muteLocalCamera
停止或恢复本地视频数据发送。
public abstract int muteLocalCamera(boolean mute);参数说明
名称  | 类型  | 描述  | 
mute  | boolean  | 表明是否停止或恢复。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
muteLocalMic
停止或恢复本地音频数据发送。
public abstract int muteLocalMic(boolean mute);参数说明
名称  | 类型  | 描述  | 
mute  | boolean  | 表明是否停止或恢复外部文件推送。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
setClientRole
设置用户角色。
public abstract int setClientRole(AliEngineClientRole clientRole);只可以在频道模式为AliRtcChannelProfileCommunication下调用,入会前/会议中均可设置,设置成功会收到onUpdateRoleNotify。 从Interactive转换为Live角色需要先停止推流,否则返回失败。
频道模式为AliRtcChannelProfileInteractiveLive模式时,用户角色默认为AliRtcClientRoleLive。
参数说明
名称  | 类型  | 描述  | 
clientRole  | AliEngineClientRole  | 用户角色类型。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
setParameter
JSON格式字符串进行自定义配置,如打开关闭dataChannel。
public abstract int setParameter(String param);参数说明
名称  | 类型  | 描述  | 
param  | String  | 自定义配置信息。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
sendDataChannelMsg
通过dataChannel发送数据。
public abstract int sendDataChannelMsg(AliRtcDataChannelMsg controlMsg);参数说明
名称  | 类型  | 描述  | 
controlMsg  | AliRtcDataChannelMsg  | 待发送的信息。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
setAudioProfile
设置音质。
public abstract int setAudioProfile(AliEngineAudioQualityMode audioProfile, AliEngineAudioSceneMode audioScene);参数说明
名称  | 类型  | 描述  | 
audioProfile  | AliEngineAudioQualityMode  | 音频采集或编码模式参数。  | 
audioScene  | AliEngineAudioSceneMode  | 音频场景模式参数。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
setRemoteDefaultVideoStreamType
设置默认订阅视频流类型。
public abstract int setRemoteDefaultVideoStreamType(AliEngineVideoStreamType streamType);参数说明
名称  | 类型  | 描述  | 
streamType  | AliEngineVideoStreamType  | 流类型,大流或小流。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
setPeriodForCheckPeople
入会后等待一段时间,若始终无人上线则回调OnError,错误码ERR_NO_PEOPLE。
public abstract void setPeriodForCheckPeople(int seconds);此功能为审核场景定制能力。
参数说明
名称  | 类型  | 描述  | 
seconds  | int  | seconds 入会后等待的秒数,若为0(或小于0)表示关闭入会检查功能。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
leaveOnceNoStreamer
以观众模式入会后,若房间内的所有主播均下播,就立即回调OnError,错误码ERR_NO_PEOPLE。
public abstract void leaveOnceNoStreamer(boolean enable);此功能为审核场景定制能力。
参数说明
名称  | 类型  | 描述  | 
enable  | boolean  | 是否开启此功能,true开启,false关闭。  | 
返回说明 0表示方法调用成功,其他表示方法调用失败。
getProcess
获取当前进程。
public abstract Process getProcess();返回说明 当前进程。
getIpcInput
获取进程间通信数据输入流。
public abstract DataInputStream getIpcInput();返回说明 进程间通信数据输入流。
getSocket
获取进程间创建通信连接的端点。
public abstract Socket getSocket();返回说明 进程间创建通信连接的端点。
getIpcOutput
获取进程间通信数据输出流。
public abstract DataOutputStream getIpcOutput();返回说明 进程间通信数据输出流。
onError
如果engine出现error,通过这个消息通知业务层。
void onError(int error_code);参数说明
名称  | 类型  | 描述  | 
error_code  | int  | 错误类型。  | 
onWarning
如果engine出现warning,通过这个消息通知业务层。
void onWarning(int warning_code);参数说明
名称  | 类型  | 描述  | 
warning_code  | int  | 警告类型。  | 
onJoinChannelResult
加入频道结果。
void onJoinChannelResult(int result, String channel, String userId);当应用调用 joinChannel[2/2]方法时,该回调表示成功/失败加入频道。
参数说明
名称  | 类型  | 描述  | 
result  | int  | 加入频道结果,成功返回0,失败返回错误码。  | 
channel  | String  | 频道名称。  | 
userId  | String  | 用户ID。  | 
onLeaveChannelResult
离开频道结果。
void onLeaveChannelResult(int result);应用调用leaveChannel方法时,该回调表示成功/失败离开频道,回调将会返回离会的result,如果leaveChannel后直接destroy SDK,将不会收到此回调。
参数说明
名称  | 类型  | 描述  | 
result  | int  | 离开频道结果,成功返回0,失败返回错误码。  | 
onRemoteUserOnLineNotify
远端用户(通信模式)/(互动模式,主播角色)加入频道回调。
void onRemoteUserOnLineNotify(String uid);该回调在以下场景会被触发:
通信模式:远端用户加入频道会触发该回调,如果当前用户在加入频道前已有其他用户在频道中,当前用户加入频道后也会收到已加入频道用户的回调。
互动模式:
远端主播角色用户加入频道会触发该回调,如果当前用户在加入频道前已有其他主播在频道中,当前用户加入频道后也会收到已加入频道主播的回调。
远端观众角色调用setClientRole 切换为主播角色 AliEngineClientRoleInteractive,会触发该回调。
互动模式下回调行为说明:
主播间可以互相收到加入频道回调
观众可以收到主播加入频道回调
主播无法收到观众加入频道回调
参数说明
名称  | 类型  | 描述  | 
uid  | String  | 用户ID 从App server分配的唯一标示符。  | 
onRemoteUserOffLineNotify
远端用户(通信模式)/(互动模式,主播角色)离开频道回调。
void onRemoteUserOffLineNotify(String uid);该回调在以下场景会被触发:
通信模式:远端用户离开频道会触发该回调。
互动模式:
远端主播角色AliEngineClientRoleInteractive离开频道。
远端主播切换调用 setClientRole 切换为观众角色AliEngineClientRoleLive,会触发该回调。
通信模式和互动模式主播角色情况下,当长时间收不到远端用户数据,超时掉线时,会触发该回调。
参数说明
名称  | 类型  | 描述  | 
uid  | String  | 用户ID 从App server分配的唯一标示符。  | 
onRemoteTrackAvailableNotify
远端用户的音视频流发生变化回调。
void onRemoteTrackAvailableNotify(String uid, AliRTCLinuxEngine.AudioTrack audioTrack, AliRTCLinuxEngine.VideoTrack videoTrack);该回调在以下场景会被触发:
当远端用户从未推流变更为推流(包括音频和视频)。
当远端用户从已推流变更为未推流(包括音频和视频)。
互动模式下,调用 setClientRole切换为主播角色 AliEngineClientRoleInteractive,同时设置了推流时,会触发该回调。
该回调仅在通信模式用户和互动模式下的主播角色才会触发。
参数说明
名称  | 类型  | 描述  | 
uid  | String  | userId,从App server分配的唯一标示符。  | 
audioTrack  | AliRTCLinuxEngine.AudioTrack  | 音频流类型,详见AudioTrack: 音频轨道类型枚举。。  | 
videoTrack  | AliRTCLinuxEngine.VideoTrack  | 视频流类型,详见VideoTrack: 视频轨道类型枚举。。  | 
onVideoSubscribeStateChanged
相机流订阅情况变更回调。
void onVideoSubscribeStateChanged(String uid, AliRTCLinuxEngine.AliEngineSubscribeState oldState, AliRTCLinuxEngine.AliEngineSubscribeState newState, int elapseSinceLastState, String channel);参数说明
名称  | 类型  | 描述  | 
uid  | String  | userId,从App server分配的唯一标示符。  | 
oldState  | AliRTCLinuxEngine.AliEngineSubscribeState  | 之前的订阅状态。  | 
newState  | AliRTCLinuxEngine.AliEngineSubscribeState  | 当前的订阅状态。  | 
elapseSinceLastState  | int  | 两次状态变更时间间隔(毫秒)。  | 
channel  | String  | 当前频道id。  | 
onSubscribeStreamTypeChanged
大小订阅情况变更回调。
void onSubscribeStreamTypeChanged(String uid, AliRTCLinuxEngine.AliEngineVideoStreamType oldStreamType, AliRTCLinuxEngine.AliEngineVideoStreamType newStreamType, int elapseSinceLastState, String channel);参数说明
名称  | 类型  | 描述  | 
uid  | String  | userId,从App server分配的唯一标示符。  | 
oldStreamType  | AliRTCLinuxEngine.AliEngineVideoStreamType  | 之前的订阅的大小流类型。  | 
newStreamType  | AliRTCLinuxEngine.AliEngineVideoStreamType  | 当前的订阅的大小流类型。  | 
elapseSinceLastState  | int  | 大小流类型变更时间间隔(毫秒)。  | 
channel  | String  | 当前频道id。  | 
onScreenShareSubscribeStateChanged
屏幕分享流订阅情况变更回调。
void onScreenShareSubscribeStateChanged(String uid, AliRTCLinuxEngine.AliEngineSubscribeState oldState, AliRTCLinuxEngine.AliEngineSubscribeState newState, int elapseSinceLastState, String channel);参数说明
名称  | 类型  | 描述  | 
uid  | String  | userId,从App server分配的唯一标示符。  | 
oldState  | AliRTCLinuxEngine.AliEngineSubscribeState  | 之前的订阅状态。  | 
newState  | AliRTCLinuxEngine.AliEngineSubscribeState  | 当前的订阅状态。  | 
elapseSinceLastState  | int  | 两次状态变更时间间隔(毫秒)。  | 
channel  | String  | 当前频道id。  | 
onScreenSharePublishStateChanged
屏幕分享推流变更回调。
void onScreenSharePublishStateChanged(AliRTCLinuxEngine.AliEnginePublishState oldState, AliRTCLinuxEngine.AliEnginePublishState newState, int elapseSinceLastState, String channel);参数说明
名称  | 类型  | 描述  | 
oldState  | AliRTCLinuxEngine.AliEnginePublishState  | 之前的推流状态。  | 
newState  | AliRTCLinuxEngine.AliEnginePublishState  | 当前的推流状态。  | 
elapseSinceLastState  | int  | 状态变更时间间隔。  | 
channel  | String  | 当前频道id。  | 
onDualStreamPublishStateChanged
次要流推流变更回调。
void onDualStreamPublishStateChanged(AliRTCLinuxEngine.AliEnginePublishState oldState, AliRTCLinuxEngine.AliEnginePublishState newState, int elapseSinceLastState, String channel);参数说明
名称  | 类型  | 描述  | 
oldState  | AliRTCLinuxEngine.AliEnginePublishState  | 之前的推流状态。  | 
newState  | AliRTCLinuxEngine.AliEnginePublishState  | 当前的推流状态。  | 
elapseSinceLastState  | int  | 状态变更时间间隔。  | 
channel  | String  | 当前频道id。  | 
onVideoPublishStateChanged
视频推流变更回调。
void onVideoPublishStateChanged(AliRTCLinuxEngine.AliEnginePublishState oldState, AliRTCLinuxEngine.AliEnginePublishState newState, int elapseSinceLastState, String channel);参数说明
名称  | 类型  | 描述  | 
oldState  | AliRTCLinuxEngine.AliEnginePublishState  | 之前的推流状态。  | 
newState  | AliRTCLinuxEngine.AliEnginePublishState  | 当前的推流状态。  | 
elapseSinceLastState  | int  | 状态变更时间间隔。  | 
channel  | String  | 当前频道id。  | 
onAudioPublishStateChanged
音频推流变更回调。
void onAudioPublishStateChanged(AliRTCLinuxEngine.AliEnginePublishState oldState, AliRTCLinuxEngine.AliEnginePublishState newState, int elapseSinceLastState, String channel);参数说明
名称  | 类型  | 描述  | 
oldState  | AliRTCLinuxEngine.AliEnginePublishState  | 之前的推流状态。  | 
newState  | AliRTCLinuxEngine.AliEnginePublishState  | 当前的推流状态。  | 
elapseSinceLastState  | int  | 状态变更时间间隔。  | 
channel  | String  | 当前频道id。  | 
onSubscribeAudioFrame
本地订阅音频数据回调。
void onSubscribeAudioFrame(String uid, AliRTCLinuxEngine.AudioFrame frame);远端单一用户混音的音频数据,用uid区分,调用subscribeRemoteAudioStream订阅类型为 AliEngineAudiosourceSub 时触发此回调。
参数说明
名称  | 类型  | 描述  | 
uid  | String  | 远端用户ID。  | 
frame  | AliRTCLinuxEngine.AudioFrame  | 音频数据。  | 
onSubscribeMixedAudioFrame
本地订阅音频混合数据回调。
void onSubscribeMixedAudioFrame(AliRTCLinuxEngine.AudioFrame frame);远端所有用户混音后待播放的音频数据,调用subscribeRemoteAudioStream订阅类型为 AliEngineAudiosourceSub 时触发此回调。
参数说明
名称  | 类型  | 描述  | 
frame  | AliRTCLinuxEngine.AudioFrame  | 音频数据。  | 
onSubscribeAudioAac
音频存档定制能力,分流音频转码AAC输出。
void onSubscribeAudioAac(String uid, AliRTCLinuxEngine.AudioFrame frame);参数说明
名称  | 类型  | 描述  | 
uid  | String  | 远端用户ID。  | 
frame  | AliRTCLinuxEngine.AudioFrame  | 音频经由AAC编码的数据,ADTS格式,可直接保存并播放。  | 
onSubscribeMixedAudioAac
音频存档定制能力,合流音频转码AAC输出。
void onSubscribeMixedAudioAac(AliRTCLinuxEngine.AudioFrame frame);参数说明
名称  | 类型  | 描述  | 
frame  | AliRTCLinuxEngine.AudioFrame  | 音频经由AAC编码数据,ADTS格式,可直接保存并播放。  | 
onRemoteVideoSample
订阅的远端视频数据回调。
void onRemoteVideoSample(String uid, AliRTCLinuxEngine.VideoFrame frame);参数说明
名称  | 类型  | 描述  | 
uid  | String  | 用户ID。  | 
frame  | AliRTCLinuxEngine.VideoFrame  | 视频裸数据(YUV I420)。  | 
onRemoteVideoEncodedSample
订阅的远端视频裸流数据回调。
void onRemoteVideoEncodedSample(String uid, AliRTCLinuxEngine.VideoFrame frame);参数说明
名称  | 类型  | 描述  | 
uid  | String  | 用户ID。  | 
frame  | AliRTCLinuxEngine.VideoFrame  | 视频未解码数据(H264 Nalu)。  | 
onMediaExtensionMsgReceived
收到媒体扩展信息回调。
void onMediaExtensionMsgReceived(String uid, byte[] msg);当一端通过subscribeRemoteAudioStream发送信息后,其他端通过该回调接收数据。
参数说明
名称  | 类型  | 描述  | 
uid  | String  | 发送用户userId。  | 
msg  | byte[]  | 扩展信息内容。  | 
onSnapshotComplete
截图回调。
void onSnapshotComplete(String uid, AliRTCLinuxEngine.VideoTrack videoSource, byte[] rgba, int width, int height, boolean success);参数说明
名称  | 类型  | 描述  | 
uid  | String  | 用户id。  | 
videoSource  | AliRTCLinuxEngine.VideoTrack  | 截图视频track。  | 
rgba  | byte[]  | 成功返回截图数据(RGBA格式),失败为NULL。  | 
width  | int  | 截图宽度。  | 
height  | int  | 截图高度。  | 
success  | boolean  | 截图是否成功。  | 
onPlaybackAudioFrameBeforeMixing
混音前每一路远端用户的音频数据回调。
void onPlaybackAudioFrameBeforeMixing(String uid, AliRTCLinuxEngine.AudioFrame frame);混音前每一路远端用户的音频数据,调用subscribeRemoteAudioStream订阅类型为 AliEngineAudiosourceSub 时触发此回调。
参数说明
名称  | 类型  | 描述  | 
uid  | String  | 远端用户ID。  | 
frame  | AliRTCLinuxEngine.AudioFrame  | 音频数据。  | 
onUpdateRoleNotify
当用户角色发生变化时通知。
void onUpdateRoleNotify(AliRTCLinuxEngine.AliEngineClientRole oldRole, AliRTCLinuxEngine.AliEngineClientRole newRole);调用setClientRole方法切换角色成功时触发此回调。
参数说明
名称  | 类型  | 描述  | 
oldRole  | AliRTCLinuxEngine.AliEngineClientRole  | 变化前角色类型。  | 
newRole  | AliRTCLinuxEngine.AliEngineClientRole  | 变化后角色类型。  | 
onDataChannelMsg
当dataChannel收到消息时。
void onDataChannelMsg(String uid, AliRTCLinuxEngine.AliRtcDataChannelMsg msg);参数说明
名称  | 类型  | 描述  | 
uid  | String  | 用户id。  | 
msg  | AliRTCLinuxEngine.AliRtcDataChannelMsg  | 收到的消息。  |