本文介绍实时音视频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;
参数说明
名称 | 类型 | 描述 |
authInfo | AuthInfo | 认证信息,从App Server获取。 |
userName | JoinChannelConfig | joinChannel时的设置项 |
返回说明 0表示方法调用成功,非0表示方法调用失败。 重要该接口是异步接口,是否成功加入频道,需要通过OnJoinChannelResult回调判断。
joinChannel[2/2]: 加入频道。
public abstract int joinChannel(String token, String channelId, String userId, String userName, JoinChannelConfig config);
参数说明
参数 | 类型 | 描述 |
token | String | 单参数入会的鉴权信息。 |
channelId | String | 入会频道,必须和产生Token的值一样。 |
userId | String | 入会的userid,必须和产生token的值一样。 |
userName | String | 用户的显示名称(不是用户ID)。 |
config | JoinChannelConfig | joinChannel时的设置项 |
返回说明 0表示方法调用成功,非0表示方法调用失败。 重要该接口是异步接口,是否成功加入频道,需要通过OnJoinChannelResult回调判断。
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: 销毁AliRTCLinuxEngine实例。SDK,将不会收到此回调。
参数说明
名称 | 类型 | 描述 |
result | int | 离开频道结果,成功返回0,失败返回错误码。 |
onRemoteUserOnLineNotify: 远端用户(通信模式)/(互动模式,主播角色)加入频道回调。
void onRemoteUserOnLineNotify(String uid);
该回调在以下场景会被触发:
通信模式:远端用户加入频道会触发该回调,如果当前用户在加入频道前已有其他用户在频道中,当前用户加入频道后也会收到已加入频道用户的回调。
互动模式:
远端主播角色用户加入频道会触发该回调,如果当前用户在加入频道前已有其他主播在频道中,当前用户加入频道后也会收到已加入频道主播的回调。
远端观众角色调用setClientRole: 设置用户角色 切换为主播角色 AliEngineClientRoleInteractive,会触发该回调。
互动模式下回调行为说明: 1. 主播间可以互相收到加入频道回调 2. 观众可以收到主播加入频道回调 3. 主播无法收到观众加入频道回调
参数说明
名称 | 类型 | 描述 |
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);
当一端通过 sendMediaExtensionMsg: 发送rtp 媒体扩展信息。发送信息后,其他端通过该回调接收数据。
参数说明
名称 | 类型 | 描述 |
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 | 收到的消息。 |