文档

AliRTCLinuxEngine接口

本文介绍实时音视频Linux SDK Java engine接口说明

目录

API

功能描述

createInstance

获取一个AliRTCLinuxEngine实例。

destroy

销毁AliRTCLinuxEngine实例。

generateToken

模拟app server行为,本地生成单参数或多参数的token。

generateTokenV2

模拟app server行为,本地生成单参数token,API考虑废弃,建议使用generateToken()。

setVideoCallbackPeriod

审核场景能力,设置视频帧的回调周期,不设置则默认每秒回调1帧。

joinChannel[1/2]

加入频道。

joinChannel[2/2]

加入频道。

leaveChannel

离开频道。

isLocalCameraPublishEnabled

查询是否允许推送camera track。

isLocalScreenPublishEnabled

查询是否允许推送screen track。

isLocalAudioPublishEnabled

查询是否允许推送audio track。

isLocalSimulcastEnabled

查询是否允许推送simulcast (camera track)。

setExternalVideoSource

启用外部视频输入源。

pushExternalVideoFrame

输入外部输视频。

setExternalAudioSource

设置是否启用外部音频输入推流。

pushExternalAudioFrameRawData

输入外部音频数据推流。

setExternalAudioPublishVolume

设置外部输入音频推流混音音量。

getExternalAudioPublishVolume

获取外部输入音频推流混音音量。

sendMediaExtensionMsg

发送rtp 媒体扩展信息。

publishLocalDualStream

是否允许推送次要视频流。

publishLocalVideoStream

是否推送本地视频(摄像头)流。

publishLocalAudioStream

是否推送本地音频流。

publishScreenShareStream

开始推送屏幕流。

subscribeRemoteAudioStream

停止/恢复订阅特定远端用户的音频流, 用于会中调用, 会前调用无效。

subscribeRemoteVideoStream

停止/恢复订阅远端用户的视频流, 用于会中调用, 会前调用无效。

setVideoEncoderConfiguration

设置相机流视频编码属性。

setScreenShareEncoderConfiguration

设置屏幕流视频编码属性。

setRemoteVideoStreamType

设置订阅相机流格式,大流或小流。

muteLocalCamera

停止或恢复本地视频数据发送。

muteLocalMic

停止或恢复本地音频数据发送。

setClientRole

设置用户角色

setParameter

json格式字符串进行自定义配置,如打开关闭dataChannel。

sendDataChannelMsg

通过dataChannel发送数据。

setAudioProfile

设置音质。

setRemoteDefaultVideoStreamType

设置默认订阅视频流类型。

setPeriodForCheckPeople

入会后等待一段时间,若始终无人上线则回调OnError,错误码ERR_NO_PEOPLE。

leaveOnceNoStreamer

以观众模式入会后,若房间内的所有主播均下播,就立即回调OnError,错误码ERR_NO_PEOPLE。

getProcess

获取当前进程。

getIpcInput

获取进程间通信数据输入流。

getSocket

获取进程间创建通信连接的端点。

getIpcOutput

获取进程间通信数据输出流。

onError

如果engine出现error,通过这个消息通知业务层。

onWarning

如果engine出现warning,通过这个消息通知业务层。

onJoinChannelResult

加入频道结果。

onLeaveChannelResult

离开频道结果。

onRemoteUserOnLineNotify

远端用户(通信模式)/(互动模式,主播角色)加入频道回调。

onRemoteUserOffLineNotify

远端用户(通信模式)/(互动模式,主播角色)离开频道回调。

onRemoteTrackAvailableNotify

远端用户的音视频流发生变化回调。

onVideoSubscribeStateChanged

相机流订阅情况变更回调。

onSubscribeStreamTypeChanged

大小订阅情况变更回调。

onScreenShareSubscribeStateChanged

屏幕分享流订阅情况变更回调。

onScreenSharePublishStateChanged

屏幕分享推流变更回调。

onDualStreamPublishStateChanged

次要流推流变更回调。

onVideoPublishStateChanged

视频推流变更回调。

onAudioPublishStateChanged

音频推流变更回调。

onSubscribeAudioFrame

本地订阅音频数据回调。

onSubscribeMixedAudioFrame

本地订阅音频混合数据回调。

onSubscribeAudioAac

音频存档定制能力,分流音频转码AAC输出。

onSubscribeMixedAudioAac

音频存档定制能力,合流音频转码AAC输出。

onRemoteVideoSample

订阅的远端视频数据回调。

onRemoteVideoEncodedSample

订阅的远端视频裸流数据回调。

onMediaExtensionMsgReceived

收到媒体扩展信息回调。

onSnapshotComplete

截图回调。

onPlaybackAudioFrameBeforeMixing

混音前每一路远端用户的音频数据回调。

onUpdateRoleNotify

当用户角色发生变化时通知。

onDataChannelMsg

当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);

该回调在以下场景会被触发:

  1. 通信模式:远端用户加入频道会触发该回调,如果当前用户在加入频道前已有其他用户在频道中,当前用户加入频道后也会收到已加入频道用户的回调。

  2. 互动模式:

  1. 远端主播角色用户加入频道会触发该回调,如果当前用户在加入频道前已有其他主播在频道中,当前用户加入频道后也会收到已加入频道主播的回调。

  2. 远端观众角色调用setClientRole: 设置用户角色 切换为主播角色 AliEngineClientRoleInteractive,会触发该回调。

说明

互动模式下回调行为说明: 1. 主播间可以互相收到加入频道回调 2. 观众可以收到主播加入频道回调 3. 主播无法收到观众加入频道回调

参数说明

名称

类型

描述

uid

String

用户ID 从App server分配的唯一标示符。

  • onRemoteUserOffLineNotify: 远端用户(通信模式)/(互动模式,主播角色)离开频道回调。

void onRemoteUserOffLineNotify(String uid);

该回调在以下场景会被触发:

  1. 通信模式:远端用户离开频道会触发该回调。

  2. 互动模式:

  1. 远端主播角色AliEngineClientRoleInteractive离开频道。

  2. 远端主播切换调用 setClientRole: 设置用户角色 切换为观众角色AliEngineClientRoleLive,会触发该回调。

说明

通信模式和互动模式主播角色情况下,当长时间收不到远端用户数据,超时掉线时,会触发该回调。

参数说明

名称

类型

描述

uid

String

用户ID 从App server分配的唯一标示符。

  • onRemoteTrackAvailableNotify: 远端用户的音视频流发生变化回调。

void onRemoteTrackAvailableNotify(String uid, AliRTCLinuxEngine.AudioTrack audioTrack, AliRTCLinuxEngine.VideoTrack videoTrack);

该回调在以下场景会被触发:

  1. 当远端用户从未推流变更为推流(包括音频和视频)。

  2. 当远端用户从已推流变更为未推流(包括音频和视频)。

  3. 互动模式下,调用 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

收到的消息。