AliRTCLinuxEngine接口

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

目录

API

功能描述

CreateAliRTCEngine

获取一个AliRTCEngineInterface实例。

Release

销毁AliRTCEngineInterface实例。

GetEventHandler

获取事件回调句柄。

JoinChannel

语法糖版加入频道,无需传nonce、timestamp,方便客户兼容其他厂商SDK。

LeaveChannel

离开频道。

IsLocalVideoStreamPublished

查询是否允许推送camera track。

IsLocalScreenPublishEnabled

查询是否允许推送screen track。

IsLocalAudioStreamPublished

查询是否允许推送audio track。

IsDualStreamPublished

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

SetExternalVideoSource

启用外部视频输入源。

PushExternalVideoFrame

输入外部输视频, 暂不支持2k及以上的视频输入。

SetExternalAudioSource

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

PushExternalAudioFrameRawData

输入外部音频数据推流。

SetAudioProfile

设置音质。

SetExternalAudioPublishVolume

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

GetExternalAudioPublishVolume

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

SendMediaExtensionMsg

发送媒体扩展信息(SEI), 最大长度为4*1024字节,用于业务的少量数据传输。

PublishLocalDualStream

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

PublishLocalVideoStream

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

PublishLocalAudioStream

是否推送本地音频流。

PublishScreenShareStream

开始推送屏幕流。

SubscribeRemoteAudioStream

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

SubscribeRemoteVideoStream

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

SetVideoEncoderConfiguration

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

SetScreenShareEncoderConfiguration

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

SetRemoteVideoStreamType

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

MuteLocalCamera

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

MuteLocalMic

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

SetClientRole

设置用户角色。

SetRemoteDefaultVideoStreamType

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

LeaveOnceNoStreamer

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

SetPeriodForCheckPeople

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

SetParameter

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

GenerateToken

在本地生成joinchannel所需要的token,绕过appserver完成鉴权。

SendDataChannelMessage

通过dataChannel发送数据。

OnError

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

OnWarning

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

OnJoinChannelResult

加入频道结果。

OnDataChannelMsg

获得dataChannel远端数据。

OnLeaveChannelResult

离开频道结果。

OnRemoteUserOnLineNotify

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

OnRemoteUserOffLineNotify

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

OnRemoteTrackAvailableNotify

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

OnAudioSubscribeStateChanged

音频订阅情况变更回调。

OnVideoSubscribeStateChanged

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

OnSubscribeStreamTypeChanged

大小订阅情况变更回调。

OnScreenShareSubscribeStateChanged

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

OnScreenSharePublishStateChanged

屏幕分享推流变更回调。

OnDualStreamPublishStateChanged

次要流推流变更回调。

OnVideoPublishStateChanged

视频推流变更回调。

OnAudioPublishStateChanged

音频推流变更回调。

OnSubscribeAudioFrame

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

OnSubscribeMixAudioFrame

本地订阅音频数据回调。

OnRemoteVideoSample

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

OnRemoteVideoEncodedSample

订阅的远端视频,解码前数据回调。

OnMediaExtensionMsgReceived

收到媒体扩展信息回调。

OnUpdateRoleNotify

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

OnSubscribeAudioAac

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

OnSubscribeMixedAudioAac

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

OnPushAudioFrameBufferFull

非匀速情况下推送音频数据过快,SDK反馈状态。

OnPushVideoFrameBufferFull

非匀速情况下推送视频数据过快,SDK反馈状态。

接口详情

  • CreateAliRTCEngine: 获取一个AliRTCEngineInterface实例。

def CreateAliRTCEngine(eventHandler:EngineEventHandlerInterface, lowPort:int, highPort:int, \
                       logPath:str, coreServicePath:str, h5mode:bool, extra:str) -> AliRTCEngineInterface

参数说明

名称

类型

描述

eventHandler

EngineEventHandlerInterface *

回调对象,负责处理回调逻辑。

lowPort

int

端口号下限,lowPort~highPort之间的端口将被随机选择用于进程间通信

highPort

int

端口号上限

logPath

str

SDK运行过程中,日志文件的保存路径

coreServicePath

str

AliRtcCoreService的实际路径

h5mode

bool

h5兼容模式,一般false即可

extra

str

对SDK进行额外配置时传入的JSON格式字符串

返回说明 AliRTCEngineInterface实例。

  • Release: 销毁AliRTCEngineInterface实例。

def Release() -> None

  • GetEventHandler: 获取事件回调句柄。

def GetEventHandler() -> EngineEventHandlerInterface

返回说明 事件回调句柄。

  • JoinChannel: 语法糖版加入频道,无需传nonce、timestamp,方便客户兼容其他厂商SDK。

def JoinChannel(token:str, channelId:str, userId:str, userName:str, config:JoinChannelConfig) -> int

参数说明

参数

类型

描述

token

str

单参数入会的鉴权信息。

channelId

str

入会频道,必须和产生Token的值一样。

userId

str

入会的userid,必须和产生token的值一样。

userName

str

用户的显示名称(不是用户ID)。

config

JoinChannelConfig

joinChannel时的设置项

返回说明 0表示方法调用成功,非0表示方法调用失败。 重要该接口是异步接口,是否成功加入频道,需要通过OnJoinChannelResult回调判断。

  • LeaveChannel: 离开频道。

def LeaveChannel() -> int

返回说明 0表示方法调用成功,其他表示方法调用失败。

  • IsLocalVideoStreamPublished: 查询是否允许推送camera track。

def IsLocalVideoStreamPublished() -> bool

返回说明 true表示允许,false表示禁止。

  • IsLocalScreenPublishEnabled: 查询是否允许推送screen track。

def IsLocalScreenPublishEnabled() -> bool

返回说明 true表示允许,false表示禁止。

  • IsLocalAudioStreamPublished: 查询是否允许推送audio track。

def IsLocalAudioStreamPublished() -> bool

返回说明 true表示允许,false表示禁止。

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

def IsDualStreamPublished() -> bool

返回说明 true表示允许,false表示禁止。

  • SetExternalVideoSource: 启用外部视频输入源。

def SetExternalVideoSource(enable:bool, sourceType:VideoSource, renderMode:RenderMode) -> int

启用后使用PushExternalVideoFrame接口输入视频数据。

参数说明

名称

类型

描述

enable

bool

true表示开启,false表示关闭。

sourceType

VideoSource

流类型。

renderMode

RenderMode

渲染模式。

返回说明 0表示方法调用成功,其他表示方法调用失败。

  • PushExternalVideoFrame: 输入外部输视频, 暂不支持2k及以上的视频输入。

def PushExternalVideoFrame(frame:VideoDataSample, sourceType:VideoSource) -> int

输入视频帧支持多种类型,如YUV和RGB。

参数说明

名称

类型

描述

frame

VideoDataSample

帧数据。

sourceType

VideoSource

流类型。

返回说明 0表示方法调用成功,其他表示方法调用失败,返回值为ERR_AUDIO_BUFFER_FULL时,可以调整控制发送速率。

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

def SetExternalAudioSource(enable:bool, sampleRate:int, channelsPerFrame:int) -> int

可通过SetExternalAudioPublishVolume设置输入音频推流音量。

参数说明

名称

类型

描述

enable

bool

true 开启,false 关闭。

sampleRate

int

采样率 16k 48k...。

channelsPerFrame

int

通道数 1 2...。

返回说明 0表示方法调用成功,其他表示方法调用失败。

  • PushExternalAudioFrameRawData: 输入外部音频数据推流。

def PushExternalAudioFrameRawData(audioSamples:bytes, sampleLength:int, timestamp:int) -> int

参数说明

名称

类型

描述

audioSamples

bytes

音频数据。

sampleLength

int

音频数据长度。

timestamp

int

时间戳。

返回说明 0表示方法调用成功,其他表示方法调用失败,返回值为ERR_AUDIO_BUFFER_FULL时,需要在间隔投递数据时间长度后再次重试投递。

  • SetAudioProfile: 设置音质。

def SetAudioProfile(audioProfile:AudioQualityMode, audioScene:AudioSceneMode) -> int

参数说明

名称

类型

描述

audioProfile

AudioQualityMode

音频采集或编码模式参数。

audioScene

AudioSceneMode

音频场景模式参数。

返回说明 0表示方法调用成功,其他表示方法调用失败。

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

def SetExternalAudioPublishVolume(volume:int) -> int

参数说明

名称

类型

描述

volume

int

音量 0-100。

返回说明 0表示方法调用成功,其他表示方法调用失败。

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

def GetExternalAudioPublishVolume() -> int

返回说明 音量。

  • SendMediaExtensionMsg: 发送媒体扩展信息(SEI), 最大长度为4*1024字节,用于业务的少量数据传输。

def SendMediaExtensionMsg(message:bytes, length:int, repeatCount:int, delay:int, isKeyFrame:bool) -> int

参数说明

名称

类型

描述

message

bytes

扩展信息内容,可以传递4K Bytes数据。

length

int

扩展信息长度,单位:字节。

repeatCount

int

重复次数,用于防止网络丢包导致的消息丢失。

delay

int

延迟多久发出去,单位:毫秒。

isKeyFrame

bool

是否只在关键帧上增加SEI。

返回说明 0表示方法调用成功,其他表示方法调用失败。

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

def PublishLocalDualStream(enabled:bool) -> int

次要视频流只在推送视频流的前提下才会推送,设置推送次要视频流时,请确认已通过PublishLocalVideoStream: 是否推送本地视频(摄像头)流。方法开启视频流推送。 SDK默认设置不推送次要视频流,在加入频道前也可以调用此接口修改默认值,并在推送视频流时生效。

参数说明

名称

类型

描述

enabled

bool

是否开启/关闭次要视频流推送; true:开启次要视频流推送,false:关闭次要视频流推送。

返回说明 0表示方法调用成功,其他表示方法调用失败。

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

def PublishLocalVideoStream(enabled:bool) -> int

SDK默认设置推送视频流,在加入频道前也可以调用此接口修改默认值,并在加入频道成功时生效。

参数说明

名称

类型

描述

enabled

bool

是否开启/关闭本地视频流推送; true:开启视频流推送,false:关闭视频流推送。

返回说明 0表示方法调用成功,其他表示方法调用失败。

  • PublishLocalAudioStream: 是否推送本地音频流。

def PublishLocalAudioStream(enabled:bool) -> int

SDK默认设置推送音频流,在加入频道前也可以调用此接口修改默认值,并在加入频道成功时生效

参数说明

名称

类型

描述

enabled

bool

是否开启/关闭本地音频流推送; true:开启音频流推送,false:关闭音频流推送。

返回说明 0表示方法调用成功,其他表示方法调用失败。

  • PublishScreenShareStream: 开始推送屏幕流。

def PublishScreenShareStream(enabled:bool) -> int

参数说明

名称

类型

描述

enabled

bool

是否开启/关闭推送屏幕流; true:开启推送,false:关闭推送。

返回说明 0表示方法调用成功,其他表示方法调用失败。

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

def SubscribeRemoteAudioStream(uid:str, sub:bool) -> int

参数说明

名称

类型

描述

uid

str

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

sub

bool

是否订阅远端用户的音频流;true:订阅指定用户的音频流,false:停止订阅指定用户的音频流

返回说明 0表示方法调用成功,其他表示方法调用失败。

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

def SubscribeRemoteVideoStream(uid:str, videoTrack:VideoTrack, sub:bool) -> int:

参数说明

名称

类型

描述

uid

str

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

videoTrack

VideoTrack

视频流类型。- AliEngineVideoTrackNo:无效参数,设置不会有任何效果。- AliEngineVideoTrackCamera:相机流。- AliEngineVideoTrackScreen:屏幕共享流。- AliEngineVideoTrackBoth:相机流和屏幕共享流。

sub

bool

是否订阅远端用户的音频流;true:订阅指定用户的音频流,false:停止订阅指定用户的音频流

返回说明 0表示方法调用成功,其他表示方法调用失败。

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

def SetVideoEncoderConfiguration(config:AliEngineVideoEncoderConfiguration) -> int

该方法用于设置相机流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等。所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。 该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次相机流视频编码属性,建议在入会前调用。

参数说明

名称

类型

描述

config

AliEngineVideoEncoderConfiguration

预定义的编码属性,详见AliEngineVideoEncoderConfiguration: 相机流视频编码属性设置。

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

def SetScreenShareEncoderConfiguration(config:AliEngineScreenShareEncoderConfiguration) -> int

该方法用于设置屏幕流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等。所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。 该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次屏幕流视频编码属性,建议在入会前调用。

参数说明

名称

类型

描述

config

AliEngineScreenShareEncoderConfiguration

预定义的屏幕共享编码属性,详见AliEngineScreenShareEncoderConfiguration: 屏幕流编码属性设置。

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

def SetRemoteVideoStreamType(uid:str, streamType:AliEngineVideoStreamType) -> int;

推流端当前默认不推送小流,只有发送端调用了 PublishLocalDualStream(true) 打开双流模式,接收端才可以选择订阅大流还是小流,否则订阅的只能是大流。

参数说明

名称

类型

描述

uid

str

userId,从App server分配的唯一标示符

streamType

AliEngineVideoStreamType

流类型。- AliEngineVideoStreamTypeNone:无效参数,设置不会有任何效果。- AliEngineVideoStreamTypeHigh:大流。- AliEngineVideoStreamTypeLow:小流。

返回说明 0表示方法调用成功,其他表示方法调用失败。

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

def MuteLocalCamera(mute:bool) -> int

参数说明

名称

类型

描述

mute

bool

表明是否停止或恢复。

返回说明 0表示方法调用成功,其他表示方法调用失败。

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

def MuteLocalMic(mute:bool) -> int

参数说明

名称

类型

描述

mute

bool

表明是否停止或恢复外部文件推送。

返回说明 0表示方法调用成功,其他表示方法调用失败。

  • SetClientRole: 设置用户角色。

def SetClientRole(clientRole:AliEngineClientRole) -> int

只可以在频道模式为AliRtcChannelProfileCommunication下调用,入会前/会议中均可设置,设置成功会收到OnUpdateRoleNotify: 当用户角色发生变化时通知。。 从Interactive转换为Live角色需要先停止推流,否则返回失败。 频道模式为AliRtcChannelProfileInteractiveLive模式时,用户角色默认为AliRtcClientRoleLive。

参数说明

名称

类型

描述

clientRole

AliEngineClientRole

用户角色类型。

返回说明 0表示方法调用成功,其他表示方法调用失败。

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

def SetRemoteDefaultVideoStreamType(streamType:AliEngineVideoStreamType) -> int

参数说明

名称

类型

描述

streamType

AliEngineVideoStreamType

流类型,大流或小流。

返回说明 0表示方法调用成功,其他表示方法调用失败。

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

def LeaveOnceNoStreamer(enable:bool) -> None

此功能为审核场景定制能力。

参数说明

名称

类型

描述

enable

bool

是否开启此功能,true开启,false关闭。

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

def SetPeriodForCheckPeople(seconds:int) -> None

同时入会失败,体现为OnJoinChannelResult回调值-1。 此功能为审核场景定制能力,默认检查空房间的最大时长为5秒。

参数说明

名称

类型

描述

seconds

int

seconds 检查空房间的最大时间(秒),若为0(或小于0)表示关闭入会检查功能。

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

def SetParameter(params:str) -> int

参数说明

名称

类型

描述

params

str

自定义配置信息。

返回说明 0表示方法调用成功,其他表示方法调用失败。

  • GenerateToken: 在本地生成joinchannel所需要的token,绕过appserver完成鉴权。

def GenerateToken(authInfo:AuthInfo, appkey:str) -> None

方法内生成单参数入会token。

参数说明

名称

类型

描述

authInfo

AuthInfo

自定义配置信息,在计算token前需要填充好appid、nonce、timestamp。

appkey

str

与appid相对应,计算token所需要的key。

  • SendDataChannelMessage: 通过dataChannel发送数据。

def SendDataChannelMessage(ctrlMsg:AliEngineDataChannelMsg) -> int

参数说明

名称

类型

描述

ctrlMsg

AliEngineDataChannelMsg

包含待发送数据和控制指令。

返回说明 0表示方法调用成功,其他表示方法调用失败。

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

def OnError(self, error_code:ERROR_CODE) -> None

参数说明

名称

类型

描述

error_code

ERROR_CODE

错误类型。

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

def OnWarning(self, warning_code:WARNNING_CODE) -> None

参数说明

名称

类型

描述

warning_code

WARNNING_CODE

警告类型。

  • OnJoinChannelResult: 加入频道结果。

def OnJoinChannelResult(self, result:int, channel:str, userId:str) -> None

当应用调用 JoinChannel 方法时,该回调表示成功/失败加入频道。

参数说明

名称

类型

描述

result

int

加入频道结果,成功返回0,失败返回错误码。

channel

str

频道ID。

userId

str

用户ID。

  • OnDataChannelMsg: 获得dataChannel远端数据。

def OnDataChannelMsg(self, uid:str, msg:AliEngineDataChannelMsg) -> None

参数说明

名称

类型

描述

uid

str

用户ID。

msg

AliEngineDataChannelMsg

远端传来的消息。

  • OnLeaveChannelResult: 离开频道结果。

def OnLeaveChannelResult(self, result:int) -> None

应用调用 LeaveChannel 方法时,该回调表示成功/失败离开频道,回调将会返回离会的result,如果 LeaveChannel 后直接 Destory SDK,将不会收到此回调。

参数说明

名称

类型

描述

result

int

离开频道结果,成功返回0,失败返回错误码。

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

def OnRemoteUserOnLineNotify(self, uid:str) -> None

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

通信模式

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

互动模式

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

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

互动模式下回调行为:

  1. 主播间可以互相收到加入频道回调。

  2. 观众可以收到主播加入频道回调。

  3. 主播无法收到观众加入频道回调。

参数说明

名称

类型

描述

uid

str

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

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

def OnRemoteUserOffLineNotify(self, uid:str) -> None

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

通信模式

  • 远端用户离开频道会触发该回调。

互动模式

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

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

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

参数说明

名称

类型

描述

uid

str

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

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

def OnRemoteTrackAvailableNotify(self, uid:str, audioTrack:AudioTrack, videoTrack:VideoTrack) -> None

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

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

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

  3. 互动模式下,调用 SetClientRole: 设置用户角色。 切换为主播角色 AliEngineClientRoleInteractive,同时设置了推流时,会触发该回调。

该回调仅在通信模式用户和互动模式下的主播角色才会触发。

参数说明

名称

类型

描述

uid

str

userId,从App server分配的唯一标示符。

audioTrack

AudioTrack

音频流类型,详见 AudioTrack: 音频轨道。

videoTrack

VideoTrack

视频流类型,详见 VideoTrack: 视频轨道。

  • OnAudioSubscribeStateChanged: 音频订阅情况变更回调。

def OnAudioSubscribeStateChanged(self, uid:str, oldState:AliEngineSubscribeState, newState:AliEngineSubscribeState,
                                     elapseSinceLastState:int, channel:str) -> None

参数说明

名称

类型

描述

uid

str

userId,从App server分配的唯一标示符。

oldState

AliEngineSubscribeState

之前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。

newState

AliEngineSubscribeState

当前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。

elapseSinceLastState

int

两次状态变更时间间隔(毫秒)。

channel

str

当前频道id。

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

def OnVideoSubscribeStateChanged(self, uid:str, oldState:AliEngineSubscribeState, newState:AliEngineSubscribeState,
                                     elapseSinceLastState:int, channel:str) -> None

参数说明

名称

类型

描述

uid

str

userId,从App server分配的唯一标示符。

oldState

AliEngineSubscribeState

之前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。

newState

AliEngineSubscribeState

当前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。

elapseSinceLastState

int

两次状态变更时间间隔(毫秒)。

channel

str

当前频道id。

  • OnSubscribeStreamTypeChanged: 大小订阅情况变更回调。

def OnSubscribeStreamTypeChanged(self, uid:str, oldStreamType:AliEngineVideoStreamType, newStreamType:AliEngineVideoStreamType,
                                     elapseSinceLastState:int, channel:str) -> None

参数说明

名称

类型

描述

uid

str

userId,从App server分配的唯一标示符。

oldStreamType

AliEngineVideoStreamType

之前的订阅的大小流类型,详见 AliEngineVideoStreamType: 视频流类型。

newStreamType

AliEngineVideoStreamType

当前的订阅的大小流类型,详见 AliEngineVideoStreamType: 视频流类型。

elapseSinceLastState

int

大小流类型变更时间间隔(毫秒)。

channel

str

当前频道id。

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

def OnScreenShareSubscribeStateChanged(self, uid:str, oldState:AliEngineSubscribeState, newState:AliEngineSubscribeState,
                                           elapseSinceLastState:int, channel:str) -> None

参数说明

名称

类型

描述

uid

str

userId,从App server分配的唯一标示符。

oldState

AliEngineSubscribeState

之前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。

newState

AliEngineSubscribeState

当前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。

elapseSinceLastState

int

两次状态变更时间间隔(毫秒)。

channel

str

当前频道id。

  • OnScreenSharePublishStateChanged: 屏幕分享推流变更回调。

def OnScreenSharePublishStateChanged(self, oldState:AliEnginePublishState, newState:AliEnginePublishState,
                                         elapseSinceLastState:int, channel:str) -> None

参数说明

名称

类型

描述

oldState

AliEnginePublishState

之前的推流状态。

newState

AliEnginePublishState

当前的推流状态。

elapseSinceLastState

int

状态变更时间间隔。

channel

str

当前频道id。

  • OnDualStreamPublishStateChanged: 次要流推流变更回调。

def OnDualStreamPublishStateChanged(self, oldState:AliEnginePublishState, newState:AliEnginePublishState,
                                        elapseSinceLastState:int, channel:str) -> None

参数说明

名称

类型

描述

oldState

AliEnginePublishState

之前的推流状态。

newState

AliEnginePublishState

当前的推流状态。

elapseSinceLastState

int

状态变更时间间隔。

channel

str

当前频道id。

  • OnVideoPublishStateChanged: 视频推流变更回调。

def OnVideoPublishStateChanged(self, oldState:AliEnginePublishState, newState:AliEnginePublishState,
                                   elapseSinceLastState:int, channel:str) -> None

参数说明

名称

类型

描述

oldState

AliEnginePublishState

之前的推流状态。

newState

AliEnginePublishState

当前的推流状态。

elapseSinceLastState

int

状态变更时间间隔。

channel

str

当前频道id。

  • OnAudioPublishStateChanged: 音频推流变更回调。

def OnAudioPublishStateChanged(self, oldState:AliEnginePublishState, newState:AliEnginePublishState,
                                   elapseSinceLastState:int, channel:str) -> None

参数说明

名称

类型

描述

oldState

AliEnginePublishState

之前的推流状态。

newState

AliEnginePublishState

当前的推流状态。

elapseSinceLastState

int

状态变更时间间隔。

channel

str

当前频道id。

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

def OnSubscribeAudioFrame(self, uid:str, frame:AudioFrame) -> None

来自远端单个用户的音频数据,详见 AliRTCSdk::Linux::AudioFormatPcmBeforMixing。

参数说明

名称

类型

描述

uid

str

远端用户ID。

frame

AudioFrame

音频数据,详见AudioFrame: 音频帧类。

  • OnSubscribeMixAudioFrame: 本地订阅音频数据回调。

def OnSubscribeMixAudioFrame(self, frame:AudioFrame) -> None

远端所有用户混音后待播放的音频数据,详见 AudioFrame: 音频帧类。

参数说明

名称

类型

描述

frame

AudioFrame

音频数据,详见AudioFrame: 音频帧类。

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

def OnRemoteVideoSample(self, uid:str, frame:VideoFrame) -> None

参数说明

名称

类型

描述

uid

str

用户ID。

frame

VideoFrame

视频裸数据。

  • OnRemoteVideoEncodedSample: 订阅的远端视频,解码前数据回调。

def OnRemoteVideoEncodedSample(self, uid:str, frame:VideoFrame) -> None

参数说明

名称

类型

描述

uid

str

用户ID。

frame

VideoFrame

视频解码前数据,Nalu。

  • OnMediaExtensionMsgReceived: 收到媒体扩展信息回调。

def OnMediaExtensionMsgReceived(self, userid:str, message:bytes, size:int) -> None

当一端通过 SendMediaExtensionMsg 发送信息后,其他端通过该回调接收数据。

参数说明

名称

类型

描述

userid

str

发送用户userId。

message

bytes

扩展信息内容。

size

int

扩展信息长度。

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

def OnUpdateRoleNotify(self, oldRole:AliEngineClientRole, newRole:AliEngineClientRole) -> None

调用 setClientRole 方法切换角色成功时触发此回调。

参数说明

名称

类型

描述

oldRole

AliEngineClientRole

变化前角色类型,参考 AliEngineClientRole: 用户角色类型。

newRole

AliEngineClientRole

变化后角色类型,参考 AliEngineClientRole: 用户角色类型。

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

def OnSubscribeAudioAac(self, uid:str, frame:AudioFrame) -> None

参数说明

名称

类型

描述

uid

str

远端用户ID。

frame

AudioFrame

音频数据,这里的数据格式为AAC,详见 AudioFrame: 音频帧类。

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

def OnSubscribeMixedAudioAac(self, frame:AudioFrame) -> None

参数说明

名称

类型

描述

frame

AudioFrame

音频数据,已转码为AAC格式的合流音频数据,详见AudioFrame: 音频帧类。

  • OnPushAudioFrameBufferFull: 非匀速情况下推送音频数据过快,SDK反馈状态。

def OnPushAudioFrameBufferFull(self, isFull:bool) -> None

参数说明

名称

类型

描述

isFull

bool

SDK音频缓存是否已满,若已满请稍等些许再推音频数据。

  • OnPushVideoFrameBufferFull: 非匀速情况下推送视频数据过快,SDK反馈状态。

def OnPushVideoFrameBufferFull(self, isFull:bool) -> None

参数说明

名称

类型

描述

isFull

bool

SDK视频缓存是否已满,若已满请稍等些许再推视频数据。