本文介绍实时音视频Linux SDK Golang engine接口说明。
目录
API | 功能描述 |
获取一个AliRTCEngineInterface实例。 | |
销毁AliRTCEngineInterface实例。 | |
获取事件回调句柄。 | |
语法糖版加入频道,无需传nonce、timestamp,方便客户兼容其他厂商SDK。 | |
离开频道。 | |
查询是否允许推送camera track。 | |
查询是否允许推送screen track。 | |
查询是否允许推送audio track。 | |
查询是否允许推送simulcast (camera track)。 | |
启用外部视频输入源。 | |
输入外部输视频, 暂不支持2k及以上的视频输入。 | |
设置是否启用外部音频输入推流。 | |
输入外部音频数据推流。 | |
设置音质。 | |
设置外部输入音频推流混音音量。 | |
获取外部输入音频推流混音音量。 | |
发送媒体扩展信息(SEI), 最大长度为4*1024字节,用于业务的少量数据传输。 | |
是否允许推送次要视频流。 | |
是否推送本地视频(摄像头)流。 | |
是否推送本地音频流。 | |
开始推送屏幕流。 | |
停止/恢复订阅特定远端用户的音频流, 用于会中调用, 会前调用无效。 | |
停止/恢复订阅远端用户的视频流, 用于会中调用, 会前调用无效。 | |
设置相机流视频编码属性。 | |
设置屏幕流视频编码属性。 | |
设置订阅相机流格式,大流或小流。 | |
停止或恢复本地视频数据发送。 | |
停止或恢复本地音频数据发送。 | |
设置用户角色。 | |
设置默认订阅视频流类型。 | |
以观众模式入会后,若房间内的所有主播均下播,就立即回调OnError,错误码ERR_NO_PEOPLE。 | |
入会后等待一段时间,若始终无人上线则回调OnError,错误码ERR_NO_PEOPLE。 | |
JSON格式字符串进行自定义配置,如打开关闭dataChannel。 | |
在本地生成joinchannel所需要的token,绕过appserver完成鉴权。 | |
通过dataChannel发送数据。 | |
如果engine出现error,通过这个消息通知业务层。 | |
如果engine出现warning,通过这个消息通知业务层。 | |
加入频道结果。 | |
获得dataChannel远端数据。 | |
离开频道结果。 | |
远端用户(通信模式)/(互动模式,主播角色)加入频道回调。 | |
远端用户(通信模式)/(互动模式,主播角色)离开频道回调。 | |
远端用户的音视频流发生变化回调。 | |
音频订阅情况变更回调。 | |
相机流订阅情况变更回调。 | |
大小订阅情况变更回调。 | |
屏幕分享流订阅情况变更回调。 | |
屏幕分享推流变更回调。 | |
次要流推流变更回调。 | |
视频推流变更回调。 | |
音频推流变更回调。 | |
混音前每一路远端用户的音频数据回调。 | |
本地订阅音频数据回调。 | |
订阅的远端视频数据回调。 | |
订阅的远端视频,解码前数据回调。 | |
收到媒体扩展信息回调。 | |
当用户角色发生变化时通知。 | |
音频存档定制能力,分流音频转码AAC输出。 | |
音频存档定制能力,合流音频转码AAC输出。 | |
非匀速情况下推送音频数据过快,SDK反馈状态。 | |
非匀速情况下推送视频数据过快,SDK反馈状态。 |
接口详情
CreateAliRTCEngine: 获取一个AliRTCEngineInterface实例。
func CreateAliRTCEngine(eventHandler EngineEventHandlerInterface, lowPort, highPort int, logPath, coreServicePath string, h5mode bool, extra string) 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实例。
Release() error
GetEventHandler: 获取事件回调句柄。
GetEventHandler() EngineEventHandlerInterface
返回说明 事件回调句柄。
JoinChannel: 语法糖版加入频道,无需传nonce、timestamp,方便客户兼容其他厂商SDK。
JoinChannel(token, channelId, userId, userName string, config *JoinChannelConfig) int
参数说明
参数 | 类型 | 描述 |
token | str | 单参数入会的鉴权信息。 |
channelId | str | 入会频道,必须和产生Token的值一样。 |
userId | str | 入会的userid,必须和产生token的值一样。 |
userName | str | 用户的显示名称(不是用户ID)。 |
config | JoinChannelConfig | joinChannel时的设置项 |
返回说明 0表示方法调用成功,非0表示方法调用失败。
该接口是异步接口,是否成功加入频道,需要通过OnJoinChannelResult回调判断。
LeaveChannel: 离开频道。
LeaveChannel() int
返回说明 0表示方法调用成功,其他表示方法调用失败。
IsLocalVideoStreamPublished: 查询是否允许推送camera track。
IsLocalVideoStreamPublished() bool
返回说明 true表示允许,false表示禁止。
IsLocalScreenPublishEnabled: 查询是否允许推送screen track。
IsLocalScreenPublishEnabled() bool
返回说明 true表示允许,false表示禁止。
IsLocalAudioStreamPublished: 查询是否允许推送audio track。
IsLocalAudioStreamPublished() bool
返回说明 true表示允许,false表示禁止。
IsDualStreamPublished: 查询是否允许推送simulcast (camera track)。
IsDualStreamPublished() bool
返回说明 true表示允许,false表示禁止。
SetExternalVideoSource: 启用外部视频输入源。
SetExternalVideoSource(enable bool, sourceType VideoSource, renderMode RenderMode) int
启用后使用PushExternalVideoFrame接口输入视频数据。
参数说明
名称 | 类型 | 描述 |
enable | bool | true表示开启,false表示关闭。 |
sourceType | VideoSource | 流类型。 |
renderMode | RenderMode | 渲染模式。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
PushExternalVideoFrame: 输入外部输视频, 暂不支持2k及以上的视频输入。
PushExternalVideoFrame(frame *VideoDataSample, sourceType VideoSource) int
输入视频帧支持多种类型,如YUV和RGB。
参数说明
名称 | 类型 | 描述 |
frame | VideoDataSample | 帧数据。 |
sourceType | VideoSource | 流类型。 |
返回说明 0表示方法调用成功,其他表示方法调用失败,返回值为ERR_AUDIO_BUFFER_FULL时,可以调整控制发送速率。
SetExternalAudioSource: 设置是否启用外部音频输入推流。
SetExternalAudioSource(enable bool, sampleRate, channelsPerFrame int) int
可通过SetExternalAudioPublishVolume设置输入音频推流音量。
参数说明
名称 | 类型 | 描述 |
enable | bool | true 开启,false 关闭。 |
sampleRate | int | 采样率 16k 48k...。 |
channelsPerFrame | int | 通道数 1 2...。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
PushExternalAudioFrameRawData: 输入外部音频数据推流。
PushExternalAudioFrameRawData(audioSamples []byte, sampleLength int, timestamp int64) int
参数说明
名称 | 类型 | 描述 |
audioSamples | bytes | 音频数据。 |
sampleLength | int | 音频数据长度。 |
timestamp | int | 时间戳。 |
返回说明 0表示方法调用成功,其他表示方法调用失败,返回值为ERR_AUDIO_BUFFER_FULL时,需要在间隔投递数据时间长度后再次重试投递。
SetAudioProfile: 设置音质。
SetAudioProfile(audioProfile AudioQualityMode, audioScene AudioSceneMode) int
参数说明
名称 | 类型 | 描述 |
audioProfile | AudioQualityMode | 音频采集或编码模式参数。 |
audioScene | AudioSceneMode | 音频场景模式参数。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
SetExternalAudioPublishVolume: 设置外部输入音频推流混音音量。
SetExternalAudioPublishVolume(volume int) int
参数说明
名称 | 类型 | 描述 |
volume | int | 音量 0-100。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
GetExternalAudioPublishVolume: 获取外部输入音频推流混音音量。
GetExternalAudioPublishVolume() int
返回说明 音量。
SendMediaExtensionMsg: 发送媒体扩展信息(SEI), 最大长度为4*1024字节,用于业务的少量数据传输。
SendMediaExtensionMsg(message []byte, length, repeatCount, delay int, isKeyFrame bool) int
参数说明
名称 | 类型 | 描述 |
message | bytes | 扩展信息内容,可以传递4K Bytes数据。 |
length | int | 扩展信息长度,单位:字节。 |
repeatCount | int | 重复次数,用于防止网络丢包导致的消息丢失。 |
delay | int | 延迟多久发出去,单位:毫秒。 |
isKeyFrame | bool | 是否只在关键帧上增加SEI。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
PublishLocalDualStream: 是否允许推送次要视频流。
PublishLocalDualStream(enabled bool) int
次要视频流只在推送视频流的前提下才会推送,设置推送次要视频流时,请确认已通过PublishLocalVideoStream: 是否推送本地视频(摄像头)流。方法开启视频流推送。 SDK默认设置不推送次要视频流,在加入频道前也可以调用此接口修改默认值,并在推送视频流时生效。
参数说明
名称 | 类型 | 描述 |
enabled | bool | 是否开启/关闭次要视频流推送; true:开启次要视频流推送,false:关闭次要视频流推送。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
PublishLocalVideoStream: 是否推送本地视频(摄像头)流。
PublishLocalVideoStream(enabled bool) int
SDK默认设置推送视频流,在加入频道前也可以调用此接口修改默认值,并在加入频道成功时生效。
参数说明
名称 | 类型 | 描述 |
enabled | bool | 是否开启/关闭本地视频流推送; true:开启视频流推送,false:关闭视频流推送。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
PublishLocalAudioStream: 是否推送本地音频流。
PublishLocalAudioStream(enabled bool) int
SDK默认设置推送音频流,在加入频道前也可以调用此接口修改默认值,并在加入频道成功时生效。
参数说明
名称 | 类型 | 描述 |
enabled | bool | 是否开启/关闭本地音频流推送; true:开启音频流推送,false:关闭音频流推送。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
PublishScreenShareStream: 开始推送屏幕流。
PublishScreenShareStream(enabled bool) int
参数说明
名称 | 类型 | 描述 |
enabled | bool | 是否开启/关闭推送屏幕流; true:开启推送,false:关闭推送。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
SubscribeRemoteAudioStream: 停止/恢复订阅特定远端用户的音频流, 用于会中调用, 会前调用无效。
SubscribeRemoteAudioStream(uid string, sub bool) int
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID,从App server分配的唯一标示符。 |
sub | bool | 是否订阅远端用户的音频流;true:订阅指定用户的音频流,false:停止订阅指定用户的音频流 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
SubscribeRemoteVideoStream: 停止/恢复订阅远端用户的视频流, 用于会中调用, 会前调用无效。
SubscribeRemoteVideoStream(uid string, videoTrack VideoTrack, sub bool) int
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID,从App server分配的唯一标示符。 |
videoTrack | VideoTrack | 视频流类型。- AliEngineVideoTrackNo:无效参数,设置不会有任何效果。- AliEngineVideoTrackCamera:相机流。- AliEngineVideoTrackScreen:屏幕共享流。- AliEngineVideoTrackBoth:相机流和屏幕共享流。 |
sub | bool | 是否订阅远端用户的音频流;true:订阅指定用户的音频流,false:停止订阅指定用户的音频流 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
SetVideoEncoderConfiguration: 设置相机流视频编码属性。
SetVideoEncoderConfiguration(config AliEngineVideoEncoderConfiguration) int
该方法用于设置相机流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等。所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。 该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次相机流视频编码属性,建议在入会前调用。
参数说明
名称 | 类型 | 描述 |
config | AliEngineVideoEncoderConfiguration |
SetScreenShareEncoderConfiguration: 设置屏幕流视频编码属性。
SetScreenShareEncoderConfiguration(config AliEngineScreenShareEncoderConfiguration) int
该方法用于设置屏幕流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等。所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。 该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次屏幕流视频编码属性,建议在入会前调用。
参数说明
名称 | 类型 | 描述 |
config | AliEngineScreenShareEncoderConfiguration | 预定义的屏幕共享编码属性,详见AliEngineScreenShareEncoderConfiguration: 屏幕流编码属性设置。 |
SetRemoteVideoStreamType: 设置订阅相机流格式,大流或小流。
SetRemoteVideoStreamType(uid string, streamType AliEngineVideoStreamType) int
推流端当前默认不推送小流,只有发送端调用了 PublishLocalDualStream(true) 打开双流模式,接收端才可以选择订阅大流还是小流,否则订阅的只能是大流。
参数说明
名称 | 类型 | 描述 |
uid | str | userId,从App server分配的唯一标示符 |
streamType | AliEngineVideoStreamType | 流类型。- AliEngineVideoStreamTypeNone:无效参数,设置不会有任何效果。- AliEngineVideoStreamTypeHigh:大流。- AliEngineVideoStreamTypeLow:小流。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
MuteLocalCamera: 停止或恢复本地视频数据发送。
MuteLocalCamera(mute bool) int
参数说明
名称 | 类型 | 描述 |
mute | bool | 表明是否停止或恢复。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
MuteLocalMic: 停止或恢复本地音频数据发送。
MuteLocalMic(mute bool) int
参数说明
名称 | 类型 | 描述 |
mute | bool | 表明是否停止或恢复外部文件推送。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
SetClientRole: 设置用户角色。
SetClientRole(clientRole AliEngineClientRole) int
只可以在频道模式为AliRtcChannelProfileCommunication下调用,入会前/会议中均可设置,设置成功会收到onUpdateRoleNotify。 从Interactive转换为Live角色需要先停止推流,否则返回失败。 频道模式为AliRtcChannelProfileInteractiveLive模式时,用户角色默认为AliRtcClientRoleLive。
参数说明
名称 | 类型 | 描述 |
clientRole | AliEngineClientRole | 用户角色类型。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
SetRemoteDefaultVideoStreamType: 设置默认订阅视频流类型。
SetRemoteDefaultVideoStreamType(streamType AliEngineVideoStreamType) int
参数说明
名称 | 类型 | 描述 |
streamType | AliEngineVideoStreamType | 流类型,大流或小流。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
LeaveOnceNoStreamer: 以观众模式入会后,若房间内的所有主播均下播,就立即回调OnError,错误码ERR_NO_PEOPLE。
LeaveOnceNoStreamer(enable bool) int
此功能为审核场景定制能力。
参数说明
名称 | 类型 | 描述 |
enable | bool | 是否开启此功能,true开启,false关闭。 |
SetPeriodForCheckPeople: 入会后等待一段时间,若始终无人上线则回调OnError,错误码ERR_NO_PEOPLE。
SetPeriodForCheckPeople(seconds int) int
同时入会失败,体现为OnJoinChannelResult回调值-1。 此功能为审核场景定制能力,默认检查空房间的最大时长为5秒。
参数说明
名称 | 类型 | 描述 |
seconds | int | seconds 检查空房间的最大时间(秒),若为0(或小于0)表示关闭入会检查功能。 |
SetParameter: json格式字符串进行自定义配置,如打开关闭dataChannel。
SetParameter(params string) int
参数说明
名称 | 类型 | 描述 |
params | str | 自定义配置信息。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
GenerateToken: 在本地生成joinchannel所需要的token,绕过appserver完成鉴权。
GenerateToken(authInfo AuthInfo, appkey string) string
方法内生成单参数入会token。
参数说明
名称 | 类型 | 描述 |
authInfo | AuthInfo | 自定义配置信息,在计算token前需要填充好appid、nonce、timestamp。 |
appkey | str | 与appid相对应,计算token所需要的key。 |
SendDataChannelMessage: 通过dataChannel发送数据。
SendDataChannelMessage(ctrlMsg AliEngineDataChannelMsg) int
参数说明
名称 | 类型 | 描述 |
ctrlMsg | AliEngineDataChannelMsg | 包含待发送数据和控制指令。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
OnError: 如果engine出现error,通过这个消息通知业务层。
OnError(errorCode ErrorCode)
参数说明
名称 | 类型 | 描述 |
error_code | ERROR_CODE | 错误类型。 |
OnWarning: 如果engine出现warning,通过这个消息通知业务层。
OnWarning(warningCode WarningCode)
参数说明
名称 | 类型 | 描述 |
warning_code | WARNNING_CODE | 警告类型。 |
OnJoinChannelResult: 加入频道结果。
OnJoinChannelResult(result int, channel, userId string)
当应用调用 JoinChannel 方法时,该回调表示成功/失败加入频道。
参数说明
名称 | 类型 | 描述 |
result | int | 加入频道结果,成功返回0,失败返回错误码。 |
channel | str | 频道ID。 |
userId | str | 用户ID。 |
OnDataChannelMsg: 获得dataChannel远端数据。
OnDataChannelMsg(uid string, msg AliEngineDataChannelMsg)
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID。 |
msg | AliEngineDataChannelMsg | 远端传来的消息。 |
OnLeaveChannelResult: 离开频道结果。
OnLeaveChannelResult(result int)
应用调用 LeaveChannel 方法时,该回调表示成功/失败离开频道,回调将会返回离会的result,如果 LeaveChannel 后直接 Destory SDK,将不会收到此回调。
参数说明
名称 | 类型 | 描述 |
result | int | 离开频道结果,成功返回0,失败返回错误码。 |
OnRemoteUserOnLineNotify: 远端用户(通信模式)/(互动模式,主播角色)加入频道回调。
OnRemoteUserOnLineNotify(uid string)
该回调在以下场景会被触发:
通信模式:远端用户加入频道会触发该回调,如果当前用户在加入频道前已有其他用户在频道中,当前用户加入频道后也会收到已加入频道用户的回调。
互动模式:
远端主播角色用户加入频道会触发该回调,如果当前用户在加入频道前已有其他主播在频道中,当前用户加入频道后也会收到已加入频道主播的回调。
远端观众角色调用 SetClientRole 切换为主播角色 AliEngineClientRoleInteractive,会触发该回调。
互动模式下回调行为:
主播间可以互相收到加入频道回调。
观众可以收到主播加入频道回调。
主播无法收到观众加入频道回调。
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID 从App server分配的唯一标示符。 |
OnRemoteUserOffLineNotify: 远端用户(通信模式)/(互动模式,主播角色)离开频道回调。
OnRemoteUserOffLineNotify(uid string)
该回调在以下场景会被触发:
通信模式:远端用户离开频道会触发该回调。
互动模式:
远端主播角色AliEngineClientRoleInteractive离开频道。
远端主播切换调用 SetClientRole 切换为观众角色AliEngineClientRoleLive,会触发该回调。
通信模式和互动模式主播角色情况下,当长时间收不到远端用户数据,超时掉线时,会触发该回调。
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID 从App server分配的唯一标示符。 |
OnRemoteTrackAvailableNotify: 远端用户的音视频流发生变化回调。
OnRemoteTrackAvailableNotify(uid string, audioTrack AudioTrack, videoTrack VideoTrack)
该回调在以下场景会被触发:
当远端用户从未推流变更为推流(包括音频和视频)。
当远端用户从已推流变更为未推流(包括音频和视频)。
互动模式下,调用 SetClientRole 切换为主播角色 AliEngineClientRoleInteractive,同时设置了推流时,会触发该回调。
该回调仅在通信模式用户和互动模式下的主播角色才会触发。
参数说明
名称 | 类型 | 描述 |
uid | str | userId,从App server分配的唯一标示符。 |
audioTrack | AudioTrack | 音频流类型,详见 AudioTrack。 |
videoTrack | VideoTrack | 视频流类型,详见 VideoTrack。 |
OnAudioSubscribeStateChanged: 音频订阅情况变更回调。
OnAudioSubscribeStateChanged(uid string, oldState, newState AliEngineSubscribeState, elapseSinceLastState int, channel string)
参数说明
名称 | 类型 | 描述 |
uid | str | userId,从App server分配的唯一标示符。 |
oldState | AliEngineSubscribeState | 之前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。 |
newState | AliEngineSubscribeState | 当前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。 |
elapseSinceLastState | int | 两次状态变更时间间隔(毫秒)。 |
channel | str | 当前频道id。 |
OnVideoSubscribeStateChanged: 相机流订阅情况变更回调。
OnVideoSubscribeStateChanged(uid string, oldState, newState AliEngineSubscribeState, elapseSinceLastState int, channel string)
参数说明
名称 | 类型 | 描述 |
uid | str | userId,从App server分配的唯一标示符。 |
oldState | AliEngineSubscribeState | 之前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。 |
newState | AliEngineSubscribeState | 当前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。 |
elapseSinceLastState | int | 两次状态变更时间间隔(毫秒)。 |
channel | str | 当前频道id。 |
OnSubscribeStreamTypeChanged: 大小订阅情况变更回调。
OnSubscribeStreamTypeChanged(uid string, oldStreamType, newStreamType AliEngineVideoStreamType, elapseSinceLastState int, channel string)
参数说明
名称 | 类型 | 描述 |
uid | str | userId,从App server分配的唯一标示符。 |
oldStreamType | AliEngineVideoStreamType | 之前的订阅的大小流类型,详见 AliEngineVideoStreamType: 视频流类型。 |
newStreamType | AliEngineVideoStreamType | 当前的订阅的大小流类型,详见 AliEngineVideoStreamType: 视频流类型。 |
elapseSinceLastState | int | 大小流类型变更时间间隔(毫秒)。 |
channel | str | 当前频道id。 |
OnScreenShareSubscribeStateChanged: 屏幕分享流订阅情况变更回调。
OnScreenShareSubscribeStateChanged(uid string, oldState, newState AliEngineSubscribeState, elapseSinceLastState int, channel string)
参数说明
名称 | 类型 | 描述 |
uid | str | userId,从App server分配的唯一标示符。 |
oldState | AliEngineSubscribeState | 之前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。 |
newState | AliEngineSubscribeState | 当前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。 |
elapseSinceLastState | int | 两次状态变更时间间隔(毫秒)。 |
channel | str | 当前频道id。 |
OnScreenSharePublishStateChanged: 屏幕分享推流变更回调。
OnScreenSharePublishStateChanged(oldState, newState AliEnginePublishState, elapseSinceLastState int, channel string)
参数说明
名称 | 类型 | 描述 |
oldState | AliEnginePublishState | 之前的推流状态。 |
newState | AliEnginePublishState | 当前的推流状态。 |
elapseSinceLastState | int | 状态变更时间间隔。 |
channel | str | 当前频道id。 |
OnDualStreamPublishStateChanged: 次要流推流变更回调。
OnDualStreamPublishStateChanged(oldState, newState AliEnginePublishState, elapseSinceLastState int, channel string)
参数说明
名称 | 类型 | 描述 |
oldState | AliEnginePublishState | 之前的推流状态。 |
newState | AliEnginePublishState | 当前的推流状态。 |
elapseSinceLastState | int | 状态变更时间间隔。 |
channel | str | 当前频道id。 |
OnVideoPublishStateChanged: 视频推流变更回调。
OnVideoPublishStateChanged(oldState, newState AliEnginePublishState, elapseSinceLastState int, channel string)
参数说明
名称 | 类型 | 描述 |
oldState | AliEnginePublishState | 之前的推流状态。 |
newState | AliEnginePublishState | 当前的推流状态。 |
elapseSinceLastState | int | 状态变更时间间隔。 |
channel | str | 当前频道id。 |
OnAudioPublishStateChanged: 音频推流变更回调。
OnAudioPublishStateChanged(oldState, newState AliEnginePublishState, elapseSinceLastState int, channel string)
参数说明
名称 | 类型 | 描述 |
oldState | AliEnginePublishState | 之前的推流状态。 |
newState | AliEnginePublishState | 当前的推流状态。 |
elapseSinceLastState | int | 状态变更时间间隔。 |
channel | str | 当前频道id。 |
OnSubscribeAudioFrame: 混音前每一路远端用户的音频数据回调。
OnSubscribeAudioFrame(uid string, frame AudioFrame)
来自远端单个用户的音频数据,详见 AudioFormatPcmBeforMixing。
参数说明
名称 | 类型 | 描述 |
uid | str | 远端用户ID。 |
frame | AudioFrame | 音频数据,详见AudioFrame: 音频帧类。 |
OnSubscribeMixAudioFrame: 本地订阅音频数据回调。
OnSubscribeMixAudioFrame(frame AudioFrame)
远端所有用户混音后待播放的音频数据,详见 AudioFormatMixedPcm。
参数说明
名称 | 类型 | 描述 |
frame | AudioFrame | 音频数据,详见AudioFrame: 音频帧类。 |
OnRemoteVideoSample: 订阅的远端视频数据回调。
OnRemoteVideoSample(uid string, frame VideoFrame)
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID。 |
frame | VideoFrame | 视频裸数据。 |
OnRemoteVideoEncodedSample: 订阅的远端视频,解码前数据回调。
OnRemoteVideoEncodedSample(uid string, frame VideoFrame)
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID。 |
frame | VideoFrame | 视频解码前数据,Nalu。 |
OnMediaExtensionMsgReceived: 收到媒体扩展信息回调。
OnMediaExtensionMsgReceived(userid string, message []byte, size int)
当一端通过 SendMediaExtensionMsg 发送信息后,其他端通过该回调接收数据。
参数说明
名称 | 类型 | 描述 |
userid | str | 发送用户userId。 |
message | bytes | 扩展信息内容。 |
size | int | 扩展信息长度。 |
OnUpdateRoleNotify: 当用户角色发生变化时通知。
OnUpdateRoleNotify(oldRole, newRole AliEngineClientRole)
调用 setClientRole 方法切换角色成功时触发此回调。
参数说明
名称 | 类型 | 描述 |
oldRole | AliEngineClientRole | 变化前角色类型,参考 AliEngineClientRole: 用户角色类型。 |
newRole | AliEngineClientRole | 变化后角色类型,参考 AliEngineClientRole: 用户角色类型。 |
OnSubscribeAudioAac: 音频存档定制能力,分流音频转码AAC输出。
OnSubscribeAudioAac(uid string, frame AudioFrame)
参数说明
名称 | 类型 | 描述 |
uid | str | 远端用户ID。 |
frame | AudioFrame | 音频数据,这里的数据格式为AAC,详见 AudioFrame: 音频帧类。 |
OnSubscribeMixedAudioAac: 音频存档定制能力,合流音频转码AAC输出。
OnSubscribeMixedAudioAac(frame AudioFrame)
参数说明
名称 | 类型 | 描述 |
frame | AudioFrame | 音频数据,已转码为AAC格式的合流音频数据,详见AudioFrame: 音频帧类。 |
OnPushAudioFrameBufferFull: 非匀速情况下推送音频数据过快,SDK反馈状态。
OnPushAudioFrameBufferFull(isFull bool)
参数说明
名称 | 类型 | 描述 |
isFull | bool | SDK音频缓存是否已满,若已满请稍等些许再推音频数据。 |
OnPushVideoFrameBufferFull: 非匀速情况下推送视频数据过快,SDK反馈状态。
OnPushVideoFrameBufferFull(isFull bool)
参数说明
名称 | 类型 | 描述 |
isFull | bool | SDK视频缓存是否已满,若已满请稍等些许再推视频数据。 |