视频通话
联系电话:(010) 6072 8829
技术QQ群:697918347
English
视频通话API
API概览

TTT API Reference for Windows

三体云通过全球部署的虚拟网络,提供可以灵活搭配的 API 组合,只需集成3T SDK即可实现多平台之间可靠的实时音视频通信。

API 接口类

IRtcEngine 是 TTT SDK 的接口类,提供连麦直播相关的接口方法。

IVideoDevice 视频设备接口类,提供视频设备相关接口。

IRtcEngineEventHandler 事件回调接口类,提供3T SDK的回调方法,用户可以自定义继承此类,实现自定义的事件处理流程。

IVideoFrameObserver 视频数据回调接口类,提供视频采集数据相关回调接口。

根据方法实现的功能,我们把所有方法分为以下几类。

IRtcEngine接口类

核心方法

方法 功能
createInstance 获取IRtcEngine实例
initialize 初始化IRtcEngine实例
setAppID 设置appID
setChannelProfile 设置频道模式
setClientRole 设置直播场景的用户角色
setServerAddr 设置服务器地址
joinChannel 加入频道
leaveChannel 离开频道
getVersion 获取SDK版本号
getConnectionState 获取当前连接状态
renewToken 刷新token

核心音频方法

方法 功能
muteLocalAudioStream 静音/取消静音
muteAllRemoteAudioStreams 是否静音所有远端音频
muteRemoteAudioStream 是否静音指定用户的音频
muteRemoteSpeaking 是否禁言指定远端用户
setSpeakerVolume 调节本地扬声器音量
getSpeakerVolume 调节本地扬声器音量
setRecordingDevice 设置声音采集设备
setPlayoutDevice 设置声音播放设备
setMicrophoneVolume 设置系统麦克风采集音量
getMicrophoneVolume 获取系统麦克风采集音量
getNumOfPlayoutDevices 获取声音播放设备的总数
getNumOfRecordingDevices 获取声音录制设备的总数
getPlayoutDeviceName 获取声音播放设备的名称
getRecordingDeviceName 获取声音录制设备的名称
enableAudioVolumeIndication 启用说话者音量提示
setPreferAudioCodec 设置音频编码参数
adjustLocalAudioVolume 调节本地播放音量
adjustRemoteAudioVolume 调节远端用户播放音量
adjustRemoteAudioMixedVolume 调节远端用户混音播放音量

核心视频方法

方法 功能
enableVideo 启用视频模块
disableVideo 关闭视频模块
createLocalVideo 创建本地视频通道
releaseLocalVideo 释放本地视频通道
reconfigLocalVideo 重置本地视频通道
startPreview 开启视频预览
stopPreview 停止视频预览
createRemoteVideo 创建远端视频通道
releaseRemoteVideo 释放远端视频通道

耳返

方法 功能
enableEarphoneMonitor 允许/禁止耳返功能
adjustEarphoneMonitorVolume 调节耳返音量

音乐文件播放及混音设置

方法 功能
startAudioMixing 开始播放音乐文件
stopAudioMixing 停止播放音乐文件
pauseAudioMixing 暂停播放音乐文件
resumeAudioMixing 恢复播放音乐文件
adjustAudioMixingVolume 调节音乐文件播放音量
adjustAudioMixingPlayoutVolume 调节音乐文件本地播放音量
adjustAudioMixingPublishVolume 调节音乐文件远端播放音量
getAudioMixingDuration 获取音乐文件播放时长
getAudioMixingCurrentPosition 获取音乐文件播放进度
setAudioMixingPosition 调节音乐文件的播放位置

音频数据处理

方法 功能
startAudioRecording 启动本地音频录制
stopAudioRecording 停止本地音频录制

视频数据处理

方法 功能
registerVideoFrameObserver 注册视频数据回调对象
addVideoWatermark 添加水印
clearVideoWatermarks 清除水印

视频自采集

方法 功能
inputVideoFrame 推送外部视频数据

CDN推流设置

方法 功能
configPublisher 配置旁路直播推流
addVideoMixer 配置旁路推流的视频源
delVideoMixer 从旁路推流中移除一路视频源
setVideoCompositingLayout 设置画中画布局
setVideoMixerBackgroundImgUrl 设置混屏背景图片
setVideoMixerParams 设置旁路推流视频编码参数
setAudioMixerParams 设置旁路推流音频编码参数

跨房间连麦

方法 功能
subscribeOtherChannel 订阅其它房间主播视频
unSubscribeOtherChannel 取消订阅其它房间主播视频

设备测试

方法 功能
startLocalVideoTest 开始本地视频设备检测
stopLocalVideoTest 停止本地视频设备检测
startRecordingDeviceTest 开始本地录音设备测试
stopRecordingDeviceTest 停止本地录音设备测试
startPlaybackDeviceTest 开始本地回放设备检测
stopPlaybackDeviceTest 停止本地回放设备检测

视频文件源

方法 功能
createRtcPlayer 创建视频文件播放对象,用于在房间内分享多媒体文件
releaseRtcPlayer 释放视频文件播放对象

其他方法

方法 功能
kickChannelUser 踢出房间

IVideoDevice 接口类

核心方法

方法 功能
getCount 获取视频设备总数
getInfo 获取视频设备信息
getInfo 获取视频设备信息

TTTRtcEngineEventHandler 接口类

核心事件回调

回调 事件
onError 发生错误
onJoinChannel 加入频道事件
onLeaveChannel 离开频道事件
onWarning 警告事件
onUserJoined 用户加入
onUserOffline 用户离线
onConnectionLost 网络连接丢失回调

媒体事件回调

回调 事件
onAudioVolumeIndication 用户音量回调
onFirstLocalVideoFrame 本地首帧视频显示
onFirstRemoteVideoFrame 已完成远端视频首帧绘制
onUserEnableVideo 远端用户启用/关闭视频功能

数据统计事件回调

回调 事件
onLocalVideoStats 本地视频统计
onRemoteVideoStats 远端视频统计
onRtcStats RtcEngine统计数据
onLocalAudioStats 本地音频统计数据
onRemoteAudioStats 远端音频统计数据
onAudioMixingFinished 婚姻播放结束
onSetSEI 主播设置SEI回调
onRTMPsenderror 本地推流状态回调
onRTMPStatusChange 服务器推流状态回调
onRequestChannelKey token即将到期回调

IVideoFrameOberver 接口类

成员函数

方法 事件
onCaptureVideoFrame 视频采集数据回调方法,返回未编码的视频数据
onEncodeVideoFrame 视频回调方法,返回编码后的视频数据
onReceiveVideoFrame 远端视频回调方法,返回从远端接收到视频数据
onRenderVideoFrame 远端视频回调方法,返回解码后的视频数据

 

 

 

 

 

 

 

API方法

IRtcEngine 接口类

详细描述

TTTRtcEngine 的接口最好在同一个线程进行,不建议在不同的线程同时调用。

 

Public 成员函数

static IRtcEngine* createInstance()
char*  getVersion()
int  initialize( RtcEngineContext& context)
int  enableVideo()
int  disableVideo()
int  setAppID( const char* appID)
int  setChannelProfile(CHANNEL_PROFILE_TYPE profile)
int  setClientRole(CLIENT_ROLE_TYPE role, const char* permissionKey)
int  setServerAddr( const char* addr, uint16_t port)
int  configPublisher(const PublisherConfig& config)
int  joinChannel( int64_t channelID, const char* token, int64_t userID )
int  leaveChannel()
char*  createLocalVideo( LocalVideoConfig& config)
void  releaseLocalVideo( const char* mediaID )
void  reconfigLocalVideo( const char* mediaID, LocalVideoConfig& config )
int  startPreview( const char* mediaID )
int  stopPreview( const char* mediaID )
void  inputVideoFrame( const char* mediaID, TVideoFrame* frame )
int  createRemoteVideo( RemoteVideoConfig& config)
void  releaseRemoteVideo( int64_t userID, const char* mediaID )
void  addVideoMixer( int64_t userID, const char* mediaID )
void  delVideoMixer( int64_t userID, const char* mediaID )
void  setVideoMixerBackgroundImgUrl( const char* url )
void  setVideoCompositingLayout( const VideoCompositingLayout& layout)
void  setVideoCompositingLayout( const char* sei, const char* seiExt )
int  registerVideoFrameObserver( const char* mediaID, IVideoFrameObserver& observer )
void  startLocalVideoTest( LocalVideoConfig& config)
void  stopLocalVideoTest()
IRtcPlayer* createRtcPlayer( int64_t userID )
void  releaseRtcPlayer( IRtcPlayer* player)
int  muteRemoteSpeaking( int64_t userID, bool mute )
int  muteLocalAudioStream( bool mute )
int  muteRemoteAudioStream( int64_t userID, bool mute )
int  muteAllRemoteAudioStreams( bool mute )
bool  kickChannelUser( int64_t userID )
int  setSpeakerVolume( int volume )
int  getSpeakerVolume( int* volume )
int  setRecordingDevice( int index )
int  setPlayoutDevice( int index )
int  setMicrophoneVolume( int volume )
int  getMicrophoneVolume( int* volume )
int  getNumOfPlayoutDevices()
int  getNumOfRecordingDevices()
int  getPlayoutDeviceName( int index, char* deviceName )
int  getRecordingDeviceName( int index, char* deviceName )
int  startRecordingDeviceTest( int indicationInterval )
int  stopRecordingDeviceTest()
int  startPlaybackDeviceTest( const char* testAudionFilePath )
int  stopPlaybackDeviceTest()
int  enableAudioVolumeIndication( int interval )
int  adjustLocalAudioVolume( int volume )
int  adjustRemoteAudioVolume( int64_t userID, int volume )
int  adjustRemoteAudioMixedVolume( int volume )
int  enableEarphoneMonitor( int enble )
int  adjustEarphoneMonitorVolume( int volume )
int  startAudioMixing( AudioMixingConfig* config )
int  stopAudioMixing()
int  pauseAudioMixing()
int  resumeAudioMixing()
int  adjustAudioMixingPlayoutVolume( int volume )
int  adjustAudioMixingPublishVolume( int volume )
int  getAudioMixingDuration()
int  getAudioMixingCurrentPosition()
int  setAudioMixingPosition( int millisecond )
int  setHighQualityAudioParameters( bool enable )
void  subscribeOtherChannel( int64_t sessionID )
void  unSubscribeOtherChannel( int64_t sessionID )
void  setVideoMixerParams( int32_t bitrate, int32_t fps, int32_t width, int32_t height )
int  setAudioMixerParams( int bitrate, int samplerate, int channels )
int  setPreferAudioCodec( int audioCodec, int bitrate, int channels )
int  startAudioRecording( const char* filepaht, AUDIO_RECORDING_QUALITY quality )
int  stopAudioRecording( )
int  addVideoWatermark( const RtcImage& watermark )
int  clearVideoWatermarks( )
int  getConnectionState( )
int  renewToken( const char* token )

函数说明

 

createInstance

static IRtcEngine* createInstance()

创建IRtcEngine实例。在调用其他接口前需要先创建一个IRtcEngine实例。

名称 描述
返回值 返回IRtcEngine的实例指针
 

initialize

int initialize(RtcEngineContext& context)

用于进行IRtcEngined实例的初始化,在调用createInstance创建IRtcEngine后,必须先调用此方法进行初始化,才能使用其他方法。

名称 描述
context RtcEngineContext数据结构,设定SDK回调对象、日志路径、日志输出等级
返回值 0代表方法调用成功,-1代表失败

getVersion

char* getVersioin()

返回TTT SDK for windows的版本信息。

名称 描述
返回值 返回SDK的版本信息。

RtcEngineContext

成员变量:

类型 名称 描述
IRtcEngineEventHandler* eventHandler SDK事件回调处理类实例。详情请参考:IRtcEngineEventHandler
const char* workPath 设置日志的工作路径。
RTC_SDK_LOG_LEVEL logLevel 日志输出等级,详情请参考:RTC_SDK_LOG_LEVEL

RTC_SDK_LOG_LEVEL:

名称 描述
RTC_LOG_LEVEL_NULL 默认
RTC_LOG_LEVEL_FATAL 崩溃日志
RTC_LOG_LEVEL_ERROR 错误日志
RTC_LOG_LEVEL_WARN 警告日志
RTC_LOG_LEVEL_INFO 信息日志
RTC_LOG_LEVEL_DEBUG 调试信息日志
RTC_LOG_LEVEL_TRACE 跟踪日志
 

enableVideo

int enableVideo()

启用视频模块。该方法可以在加入频道前调用。

名称 描述
返回值 0代表方法调用成功,-1代表失败
 

disableVideo

int disableVideo()

关闭视频模块。该方法可以在加入频道前调用

名称 描述
返回值 0代表方法调用成功,-1代表失败
 

setAppID

int setAppID( const char* appID )

设置appID。appID是区分不同用户的应用的唯一标识,需要用户在使用3T SDK前通过3T的官网申请获得。

名称 描述
appID 用户应用的唯一标识
返回值 0代表方法调用成功,-1代表失败
 

setChannelProfile

int setChannelProfile( CHANNEL_PROFILE_TYPE profile)

设置频道模式。 注意:该接口具有全局状态,不用每次加入频道都调用,除非模式需要切换。

名称 描述
profile 频道模式,详情请参考:CHANNEL_PROFILE_TYPE
返回值 0代表方法调用成功,-1代表失败。

频道模式(CHANNEL_PROFILE_TYPE):

名称 描述
CHANNEL_PROFILE_COMMUNICATION 通信模式。
CHANNEL_PROFILE_LIVE_BROADCASTING 直播模式。
 

setClientRole

int setClientRole( CLIENT_ROLE_TYPE role, const char* permissionKey )

设置用户角色,用户指挥官模式。在加入频道前,用户需要通过本方法设置被指挥者(默认)或指挥者角色式。在加入频道后,用户可以通过本方法切换用户模式。

注意:该接口具有全局状态,不用每次加入频道都调用,除非角色需要切换。

名称 描述
role 用户角色,详情请参考:CLIENT_ROLE_TYPE
permissionKey 保留参数,请设置为NULL
返回值 0代表方法调用成功,其他代表失败。

用户角色(CLIENT_ROLE_TYPE):

名称 描述
CLIENT_ROLE_BROADCASTER 主播。
CLIENT_ROLE_ANCHOR 副播。
CLIENT_ROLE_AUDIENCE 观众。
 

setServerAddr

int setServerAddr( const char* addr, uint16_t port )

设置服务器地址。默认不需要设置,3T SDK直接通过云服务获取最优的服务器进行连接。也可以调用此方法设置特定的服务器地址和端口,从而连接到指定的服务器上。

名称 描述
addr 服务器ip或者域名
port 服务器端口
返回值 0代表方法调用成功,其他代表失败。
 

configPublisher

int configPublisher( const PublisherConfig& config )

设置旁路推流地址,请在加入房间前设置

名称 描述
config 旁路推流设置;详细请参考PublisherConfig
返回值 0代表方法调用成功,其他代表失败。
Struct PublisherConfig:

成员变量:

类型 名称 描述
char publishUrl[1024] 设置的旁路推流地址。
 

joinChannel

int joinChannel( int64_t channelID, const char* token, int64_t userID)

加入视频通信房间,需要异步调用。默认情况下是不需要进行token认证的。客户可以申请使用token认证加密的功能,申请成功后,加入频道需要输入token值,服务器将检测token的有效性,并在token己经到期时回调给用户,提醒用户需要重新申请新的token

名称 描述
channelID 频道号
token token验证码。
userID 用户ID,需要业务层保证ID的唯一性,否则会导致被移出频道
返回值 0代表方法调用成功。加入房间是否成功,在onJoinChannel的回调函数返回
 

leaveChannel

int leaveChannel()

离开视频通信房间。

名称 描述
返回值 0代表方法调用成功,其他代表失败。
 

createLocalVideo

char* createLocalVideo( LocalVideoConfig& config);

创建本地视频源。视频源可以是摄像头、屏幕分享、媒体文件源等。在播放MP4等视频文件时,需要先调用createRtcPlayer

名称 描述
config 本地视频源参数配置。详情参考LocalVideoConfig
返回值 创建成功,返回视频通道的唯一ID;失败则返回NULL。
Struct LocalVideoConfig:

成员变量:

类型 名称 描述
int64_t userID 用户ID
VIDEO_CAPTURE_TYPE type 视频源的类型。详情请参考VIDEO_CAPTURE_TYPE
void* viewHwnd 视频显示窗口句柄
VIDEO_SCALE_TYPE encScaleType 重采样视频的模式。采集分辨率和输出分辨率不一致时,需要重采样,详情请参考 VIDEO_SCALE_TYPE
VIDEO_SCALE_TYPE renderScaleType 视频显示的模式。详情请参考 VIDEO_SCALE_TYPE
int32_t width 编码输出视频宽度
int32_t height 编码输出视频高度
int32_t framerate 编码输出帧率
int32_t devIndex 摄像头索引,只在使用摄像头采集是有效;仅在type为VIDEO_CAPTURE_CAMERA时有效
int32_t fullScreen 屏幕分享是否采集全屏。0表示采集screenRect区域,1表示采集全屏;仅在type为VIDEO_CAPTURE_SCREEN时有效
struct { int32_t x, y, w, h;} screenRect 屏幕采集区域;仅在type为VIDEO_CAPTURE_SCREEN时有效
int32_t srcWidth 文件源宽度;仅在type为VIDEO_CAPTURE_RAWDATA时有效
int32_t srcHeight 文件源高度;仅在type为VIDEO_CAPTURE_RAWDATA时有效
int32_t srcFramerate 文件源帧率;仅在type为VIDEO_CAPTURE_RAWDATA时有效
enum VIDEO_CAPTURE_TYPE:

成员变量:

名称 描述
VIDEO_CAPTURE_CAMERA 视频数据来源为摄像头
VIDEO_CAPTURE_SCREEN 视频数据来源为屏幕采集
VIDEO_CAPTURE_RAWDATA 视频数据来源为文件源
enum VIDEO_SCALE_TYPE:

成员变量:

名称 描述
VIDEO_SCALE_HIDDEN 裁剪模式。在源视频和输出视频分辨率不一致时,按比例裁剪以适应输出分辨率,部分内容会被裁减
VIDEO_SCALE_FIT 补黑边模式。在源视频和输出视频分辨率不一致时,通过补黑边来适应输出分辨率,内容不会被裁减
 

releaseLocalVideo

void releaseLocalVideo( const char* mediaID )

释放本地视频源通道。释放后,房间里的其他用户将不能看到这路视频。

名称 描述
mediaID 需要释放的本地视频通道ID
返回值
 

reconfigLocalVideo

void reconfigLocalVideo( const char* mediaID )

重新配置本地视频源的参数。重新配置后,mediaID保持不变

名称 描述
mediaID 需要重新配置的本地视频通道ID
返回值
 

startPreview

int startPreview( const char* mediaID )

预览本地视频源

名称 描述
mediaID 本地视频通道ID
返回值 0表示成功,-1表示参数错误
 

stopPreview

int stopPreview( const char* mediaID )

停止预览本地视频源

名称 描述
mediaID 本地视频通道ID
返回值 0表示成功,-1表示参数错误
 

inputVideoFrame

void inputVideoFrame( const char* mediaID, TVideoFrame* frame )

推送外部视频数据;只有在createLocalVideo时,type设置为VIDEO_CAPTURE_RAWDATA,通过这个接口给SDK发送外部的视频数据。

名称 描述
mediaID 本地视频通道ID
frame 外部的视频帧数据,格式是YUV的;详情请参考 TVideoFrame
返回值
Struct TVideoFrame:

成员变量:

类型 名称 描述
int32_t fmt 保留值,设置为0
uint8_t* data[3] YUV数据
int linesize[3] YUV数据长度
int32_t width 视频数据宽度
int32_t height 视频数据高度
int64_t pts 时间戳
int32_t framerate 视频数据帧率
 

createRemoteVideo

int createRemoteVideo( RemoteVideoConfig& config )

创建远端视频通道

名称 描述
config 远端视频通道的属性;详情请参考 RemoteVideoConfig
返回值 0表示成功,其他表示失败。
Struct RemoteVideoConfig:

成员变量:

类型 名称 描述
int64_t userID 用户ID
char mediaID[128] 视频通道ID
void* hwnd 视频显示窗口句柄
VIDEO_SCALE_TYPE renderScaleType 视频显示的模式。详情请参考 VIDEO_SCALE_TYPE
 

releaseRemoteVideo

void releaseRemoteVideo( int64_t userID, const char* mediaID )

释放远端视频通道

名称 描述
userID 用户ID
mediaID 远端视频通道的ID
返回值
 

addVideoMixer

void addVideoMixer( int64_t userID, const char* mediaID )

给旁路直播增加一路视频源

名称 描述
userID 用户ID
mediaID 视频通道的ID
返回值
 

delVideoMixer

void delVideoMixer( int64_t userID, const char* mediaID )

从旁路直播移出一路视频源

名称 描述
userID 用户ID
mediaID 视频通道的ID
返回值
 

setVideoCompositingLayout

void setVideoCompositingLayout( const VideoCompositingLayout& layout )

设置旁路推流的画中画布局

名称 描述
layout SEI的数据结构。详情请参考:VideoCompositingLayout
返回值
Struct VideoCompositingLayout:

成员变量:

类型 名称 描述
int32_t canvasWidth 画布宽度
int32_t canvasHeight 画布高度
char backgroupColor[8] 背景色
VideoRegion regions[32] 视频窗口数据集合
int32_t regionCount 旁路推流中视频的数量
char appData[1024] 附加数据
int32_t appDataLenght appData的长度
Struct VideoRegion:

成员变量:

类型 名称 描述
int64_t userID 用户ID
char mediaID[128] 视频通道ID
double x 视频X坐标。取值范围:[0~1];
double y 视频Y坐标,取值范围:[0~1]
double width 视频宽度,取值范围:[0~1]
double height 视频盖度,取值范围:[0~1]
int32_t zOrder 视频的维度
double alpha 视频透明度
int32_t isRegin 预留
 

setVideoCompositingLayout

void setVideoCompositingLayout( const char* sei, const char* seiExt )

设置旁路推流的画中画布局

名称 描述
sei 字符串格式的画中画描述
seiExt 扩展sei
返回值
 

setVideoMixerBackgroundImgUrl

void setVideoMixerBackgroundImgUrl( const char* url )

设置混屏背景图。

名称 描述
url 背景图片的URL地址。
返回值
 

registerVideoFrameObserver

int registerVideoFrameObserver( const char* mediaID, IVideoFrameObserver* observer )

注册视频通道回调,获取视频通道的视频数据

名称 描述
mediaID 视频通道ID
observer 用户自定义的回调接口类,用于接收从SDK返回的视频通道数据,参考IVideoFrameObserver
返回值 0表示成功,-1表示失败
 

startLocalVideoTest

void startLocalVideoTest( LocalVideoConfig& config )

开始本地视频设备检测,初始化设备,并在本地窗口预览

名称 描述
config 设置视频检测通道的属性LocalVideoConfig
返回值
 

stopLocalVideoTest

void stopLocalVideoTest()

停止本地视频设备检测,释放视频设备

名称 描述
返回值
 

createRtcPlayer

IRtcPlayer* createRtcPlayer( int64_t userID )

创建一个基于媒体文件的视频源

名称 描述
userID 用户ID
返回值 成功则返回一个IRtcPlayer的实例指针,否则返回NULL。
 

releaseRtcPlayer

void releaseRtcPlayer( IRtcPlayer* player )

释放一个基于媒体文件视频源

名称 描述
player 需要释放的IRtcPlayer实例指针
返回值
 

muteRemoteSpeaking

int muteRemoteSpeaking( int64_t userID, bool mute )

在直播模式下,打开/关闭远端用户的发言

名称 描述
userID  远端用户ID
mute  true表示关闭远端发言,false表示打开远端发言
返回值 0表示成功,其他表示失败
 

muteLocalAudioStream

int muteLocalAudioStream( bool mute )

静音/取消静音。用于允许/禁止往网络发送本地音频流

名称 描述
mute true表示静音,false表示取消静音
返回值 0表示成功,其他表示失败
 

muteRemoteAudioStream

int muteRemoteAudioStream( int64_t userID, bool mute )

本地对指定用户的音频流执行允许/禁止接收操作。禁止后,本地听不到指定用户的声音,但是其他用户还可以听到他的声音。

名称 描述
userID  远端用户ID
mute  true表示关闭远端发言,false表示打开远端发言
返回值 0表示成功,其他表示失败
 

muteAllRemoteAudioStreams

int muteAllRemoteAudioStreams( bool mute )

本地允许/禁止接收所有远端音频流。禁止后,本地听不到所有用户的声音。

名称 描述
mute  true表示关闭远端发言,false表示打开远端发言
返回值 0表示成功,其他表示失败
 

kickChannelUser

bool kickChannelUser( int64_t userID )

将某个用户请出房间,只有在直播模式下,并且角色是主播,调用该方法才有效。

名称 描述
userID 被请出的用户ID
返回值 true表示踢出用户成功,false表示失败
 

setSpeakerVolume

int setSpeakerVolume( int volume )

设置扬声器音量。范围:0~255

名称 描述
volume 音量值
返回值 0表示成功,其他表示失败
 

getSpeakerVolume

        int setSpeakerVolume( int* volume )

获取扬声器音量。范围:0~255

名称 描述
volume 返回音量值
返回值 0表示成功,其他表示失败
 

setRecordingDevice

int setRecordingDevice( int index   )

设置当前声音采集设备

名称 描述
index 声音采集设备的索引
返回值 0表示成功,其他表示失败
 

setPlayoutDevice

int setPlayoutDevice( int index )

设置当前声音回放设备/p>

名称 描述
index 声音回放设备的索引
返回值 0表示成功,其他表示失败
 

setMicrophoneVolume

int setMicrophoneVolume( int volume )

设置麦克风的音量。范围:0~255

名称 描述
volume 音量值
返回值 true表示踢出用户成功,false表示失败
 

getMicrophoneVolume

        int getMicrophoneVolume( int* volume )

获取麦克风的音量。范围:0~255

名称 描述
volume 音量值
返回值 true表示踢出用户成功,false表示失败
 

getNumOfPlayoutDevices

int getNumOfPlayoutDevices( )

获取声音回放设备的数量。

名称 描述
返回值 获取回放设备总数。
 

getNumOfRecordingDevices

int getNumOfRecordingDevices( )

获取录音设备的数量。

名称 描述
返回值 获取录音设备总数。
 

getPlayoutDeviceName

int getPlayoutDeviceName( int index, char* deviceName )

根据索引值获取系统中声音回放设备的设备名称。

名称 描述
index 回放设备索引
deviceName 存放设备名称的数组指针。
返回值 0表示成功,其他表示失败
 

getRecordingDeviceName

int getRecordingDeviceName( int index, char* deviceName )

获取录音设备的名字。

名称 描述
index 回放设备索引
deviceName 存放设备名称的数组指针。
返回值 0表示成功,其他表示失败
 

startRecordingDeviceTest

int startRecordingDeviceTest( int indicationInterval )

开始音频录制设备的检测。通过回调音量表示设备录制成功。

名称 描述
indicationInterval 音量状态回调的时间间隔。单位:毫秒
返回值 0表示成功,其他表示失败
 

stopRecordingDeviceTest

int stopRecordingDeviceTest()

停止音频录制设备的检测。调用startRecordingDeviceTest后,必须调用此方法来结束测试过程,否则会和频道内的采集冲突。

名称 描述
返回值 0表示成功,其他表示失败
 

startPlaybackDeviceTest

int startPlaybackDeviceTest( char* testAudioFilePath )

开始音频回放设备的检测,通过播放一个本地的音频文件来检测回放设备是否正常。

名称 描述
testAudioFilePath 本地音频文件的路径,包含文件名。
返回值 0表示成功,其他表示失败
 

stopPlaybackDeviceTest

int stopPlaybackDeviceTest()

停止音频回放设备的检测。调用startPlaybackDeviceTest后,必须调用此方法来结束测试过程,否则会和频道内的声音播放冲突。

名称 描述
返回值 0表示成功,其他表示失败
 

enableAudioVolumeIndication

int enableAudioVolumeIndication( int interval )

设置SDK定期向上层应用回馈当前声音状态的间隔和平滑度

名称 描述
interval 音量提示的时间间隔,小于0表示禁止音量提示功能,单位:毫秒
返回值 0表示成功,其他表示失败
 

adjustLocalAudioVolume

int adjustLocalAudioVolume( int volume )

设置本地音频播放音量

名称 描述
volume 本地播放音量值。范围:0~100,默认值100
返回值 0表示成功,其他表示失败
 

adjustRemoteAudioVolume

int adjustRemoteAudioVolume( int64_t userID, int volume )

设置远端用户音频播放音量

名称 描述
userID 远端用户ID
volume 远端音频播放音量值。范围:0~100,默认值100
返回值 0表示成功,其他表示失败
 

adjustRemoteAudioMixedVolume

int adjustAudioMixedVolume( int volume )

设置混音音频播放音量

名称 描述
volume 混音播放音量值。范围:0~100,默认值100
返回值 0表示成功,其他表示失败
 

enableEarphoneMonitor

int enableEarphoneMonitor( int enable )

允许/禁止耳返功能

名称 描述
eanble 允许/禁止耳返。true表示允许,false表示禁止
返回值 0表示成功,其他表示失败
 

adjustEarphoneMonitorVolume

        int adjustEarphoneMonitorVolume( int volume )

设置耳返音量

名称 描述
volume 耳返音量值。范围:0~100,默认值100
返回值 0表示成功,其他表示失败
 

startAudioMixing

int startAudioMixing( AudioMixingConfig* config )

指定本地音频文件来和麦克风采集的音频流进行混音和替换(用音频文件替换麦克风采集的音频流), 可以通过参数选择是否让对方听到本地播放的音频和指定循环播放的次数。

名称 描述
config 混音参数。详情请参考: AudioMixingConfig
返回值 0代表方法调用成功,其他代表失败
struct AudioMixingConfig:

成员变量:

类型 名称 描述
char filePath[512]  混音音频文件路径
int32_t enable_playout 是否允许本地播放
int32_t enable_publish 是否允许远端播放
int32_t cycle 循环次数。-1表示无限循环
 

stopAudioMixing

int stopAudioMixing()

该方法停止播放伴奏。请在频道内调用该方法。

名称 描述
返回值 0代表方法调用成功,其他代表失败
 

pauseAudioMixing

int pauseAudioMixing()

该方法暂停播放伴奏。请在频道内调用该方法。

名称 描述
返回值 0代表方法调用成功,其他代表失败
 

resumeAudioMixing

int resumeAudioMixing()

该方法恢复混音,继续播放伴奏。请在频道内调用该方法。

名称 描述
返回值 0代表方法调用成功,其他代表失败
 

adjustAudioMixingPlayoutVolume

int adjustAudioMixingPlayoutVolume( int volume )

该方法调节本地混音里伴奏的音量大小。请在频道内调用该方法。

名称 描述
volume 本地播放混音音量,取值范围:0~100。默认值100,表示文件原声。
返回值 0代表方法调用成功,其他代表失败
 

adjustAudioMixingPublishVolume

        int adjustAudioMixingPublishVolume( int volume )

该方法调节远端混音里伴奏的远端用户可以听到的音量大小。请在频道内调用该方法。

名称 描述
volume 远端播放混音音量,取值范围:0~100。默认值100,表示文件原声。
返回值 0代表方法调用成功,其他代表失败
 

getAudioMixingDuration

int getAudioMixingDuration()
名称 描述
返回值 0代表方法调用成功,其他代表失败
 

getAudioMixingCurrentPosition

int getAudioMixingCurrentPosition()

该方法获取伴奏时长,单位为毫秒。请在频道内调用该方法。

名称 描述
返回值 伴奏时长
 

setAudioMixingPosition

int setAudioMixingPosition( int millisecond )

使用该方法设置音乐文件的播放位置。请在频道内调用该方法。

名称 描述
millisecond 播放的位置,毫秒值
返回值 0代表方法调用成功,其他代表失败
 

setHighQualityAudioParameters

int setHighQualityAudioParameters( bool enable )

设置音频高音质选项。切勿在加入频道后再次调用本方法。若使用录屏或分享屏幕功能,则必须启用高音质。

名称 描述
enable true启用高音质,false禁用高音质。
返回值 0代表方法调用成功,其他代表失败
 

subscribeOtherChannel

void subscribeOtherChannel( int64_t channelID )

跨房间连麦。只有主播可以进行此操作。主播调用这个接口成功后,另一个房间的用户会收到这个主播加入房间的回调。

名称 描述
channelID 要连麦的房间 ID
返回值
 

unSubscribeOtherChannel

void unSubscribeOtherChannel( int64_t channelID )

停止当前跨房间连麦。

名称 描述
channelID 要停止连麦的房间 ID
返回值
 

setVideoMixerParams

int setVideoMixerParams( int32_t bitrate, int32_t fps, int32_t width, int32_t height )

设置混屏视频参数。需要在发起旁路推流之前设置。

名称 描述
bitrate 编码码率
fps 帧率
width 旁路推流的宽度
height 旁路推流的高度
返回值 0代表方法调用成功,其他代表失败
 

setAudioMixerParams

int setAudioMixerParams( int bitrate, int samplerate, int channels )

设置旁路推流的音频参数

名称 描述
bitrate 码率
samplerate 采样率
channels 通道数
返回值 0代表方法调用成功,其他代表失败
 

setPreferAudioCodec

int setPreferAudioCodec( int audioCodec, int bitrate, int channels )

停止当前跨房间连麦。

名称 描述
audioCodec 音频编码格式
bitrate 码率
channels 通道数
返回值 0代表方法调用成功,其他代表失败
 

startAudioRecording

int startAudioRecording( const char* filepath, AUDIO_RECORDING_QUALITY quality )

开启本地音频录制。

名称 描述
filepath 本地保存的文件路径
quality 音频文件的质量。详情请参考:AUDIO_RECORDING_QUALITY
返回值 0代表方法调用成功,其他代表失败
 

stopAudioRecording

int stopAudioRecording( )

停止本地音频录制。

名称 描述
返回值 0代表方法调用成功,其他代表失败
enum AUDIO_RECORDING_QUALITY:

成员变量:

名称 描述
AUDIO_RECORDING_QUALITY_LOW 低质量
AUDIO_RECORDING_QUALITY_MEDIUM 中质量
AUDIO_RECORDING_QUALITY_HIGH 高质量
 

addVideoWatermark

int addVideoWatermark( const RtcImage& watermark )

在本地视频上添加水印。

名称 描述
watermark 包含水印文件的信息。详情请参考RtcImage
返回值 0代表方法调用成功,其他代表失败
Struct RtcImage:

成员变量:

类型 名称 描述
char url[1024] 显示路径
int32_t x 水印显示位置左顶角位置X轴
int32_t y 水印显示位置左顶角位置y轴
int32_t width 水印显示宽度
int32_t height 水印显示高度
 

clearVideoWatermarks

int clearVideoWatermarks( )

清楚本地的水印。

名称 描述
返回值 0代表方法调用成功,其他代表失败
 

getConnectionState

int getConnectionState( )

获取网络连接的状体。

名称 描述
返回值 网络连接的状态
 

renewToken

int renewToken( const char* token )

重置token。当token即将过期时,需要立即更新token,否则将被踢出频道。

名称 描述
token 新的token值。token获取方法请参考服务端的token生成文档。
返回值 网络连接的状态

IVideoDevice 视频设备接口类

Public 成员函数

int  getCount()
int  getInfo( int index, VideoDeviceInfo* outInfo)
int  getInfo( const char* devicePath, VideoDeviceInfo* outInfo)

函数说明

 

getCount

int getCount()

获取系统视频设备的数量

名称 描述
返回值 系统视频设备的数量
 

getInfo

int getInfo( int index, VideoDeviceInfo* outInfo )

根据索引,获取视频设备的详细信息

名称 描述
index 设备的索引
outInfo SDK返回的设备信息;详情请参考:VideoDeviceInfo
返回值 0表示成功,其他表示失败
 

getInfo

int getInfo( const char* devicePath, VideoDeviceInfo* outInfo )

根据设备路径,获取视频设备的详细信息

名称 描述
devicePath 设备的设备路径
outInfo SDK返回的设备信息
返回值 0表示成功,其他表示失败
Struct VideoDeviceInfo:

成员变量:

类型 名称 描述
int64_t index 设备索引
char friendlyName[128] 设备名称
char devicePath[128] 设备路径
int32_t maxWidth 设备采集支持的最大宽度
int32_t maxHeight 设备采集支持的最大高度

IVideoFrameObserver 视频帧回调接口类

Public 成员函数

void  onCaptureVideoFrame( VideoFrameYUV& frame)
void  onEncodeVideoFrame( VideoFrameES& frame )
void  onRenderVideoFrame( VideoFrameYUV& frame)
void  onReceiveVideoFrame( VideoFrameES& frame )

函数说明

 

onCaptureVideoFrame

void onCaptureVideoFrame( VideoFrameYUV& frame )

采集视频帧的回调方法。

名称 描述
frame 设备采集的YUV格式的视频帧。详情请参考:VideoFrameYUV
返回值
 

onEncodeVideoFrame

void onEncodeVideoFrame( VideoFrameES& frame )

编码后的视频数据的回调方法。

名称 描述
frame 编码后的视频帧。详情请参考:VideoFrameES
返回值
 

onReceiveVideoFrame

void onReceiveVideoFrame( VideoFrameES& frame )

收到的远端视频数据的回调方法

名称 描述
frame 从网路接收到的远端视频帧。详情请参考:VideoFrameES
返回值
 

onRenderVideoFrame

void onRenderVideoFrame( VideoFrameYUV& frame )

渲染前的视频数据回调方法。

名称 描述
frame 渲染前的视频帧。详情请参考:VideoFrameYUV
返回值
Struct VideoFrameYUV:

成员变量:

类型 名称 描述
VIDEO_FRAME_TYPE fmt 视频数据格式类型,目前只支持FRAME_TYPE_YUV420。
uint8_t* data[3] 存储的视频数据。0-y, 1-u, 2-v
int linesize[3] 视频数据的长度
int32_t width 视频数据的宽度
int32_t height 视频数据的高度
int64_t pts 时间戳
Struct VideoFrameES:

成员变量:

类型 名称 描述
VIDEO_FRAME_TYPE fmt 视频数据格式类型,目前只支持FRAME_TYPE_H264。
uint8_t* data 存储的视频数据
int len 视频数据长度
int32_t width 视频数据的宽度
int32_t height 视频数据的高度
int64_t pts 时间戳
enum VIDEO_FRAME_TYPE:

成员变量:

名称 描述
FRAME_TYPE_YUV420 视频数据格式,YUV420
FRAME_TYPE_H264 编码后的了数据格式:H.264

IRtcPlayer 媒体文件源接口类

成员函数

virtual int  open( const char* url, RtcPlayerConfig* config ) = 0
virtual int  close( ) = 0
virtual int  start( int loop_count ) = 0
virtual int  stop() = 0
virtual int  pause() = 0
virtual int  resume() = 0
virtual int  adjustPlayoutVolume( int volume ) = 0
virtual int  adjustPublishVolume( int volume ) = 0
virtual int  duration() = 0
virtual int  seek( uint32_t seconds ) = 0
virtual int  audioID( ) = 0
virtual const char*  mediaID( ) = 0
virtual int  setEventHandler( IRtcPlayerEventHandler *event) = 0

函数说明

 

open

int open( const char* url, RtcPlayerConfig* config )

打开视频源文件

名称 描述
url 视频源的路径。可以是本地文件,也可以是网络视频源。
config 视频输出参数。具体请参考:RtcPlayerConfig
返回值 0代表方法调用成功,其他代表失败
 

close

close
int close()

关闭视频源对象

名称 描述
返回值
 

start

int start( int loop_count )

播放视频源

名称 描述
loop_count 循环播放次数。-1表示无限循环
返回值 0代表方法调用成功,其他代表失败
 

stop

int stop()

停止播放视频源

名称 描述
返回值 0代表方法调用成功,其他代表失败
 

pause

int pause()

暂停播放视频源

名称 描述
返回值 0代表方法调用成功,其他代表失败
 

resume

int resume()

恢复播放视频源

名称 描述
返回值 0代表方法调用成功,其他代表失败
 

adjustPlayoutVolume

int adjustPlayoutVolume( int volume )

设置本地播放音量值

名称 描述
volume 本地播放音量值
返回值 0代表方法调用成功,其他代表失败
 

adjustPublishVolume

int adjustPublishVolume( int volume )

设置远端播放的音量

名称 描述
volume 设置的音量值。
返回值 0代表方法调用成功,其他代表失败
 

duration

int duration()

获取视频源的时长。

名称 描述
返回值 视频源的时长。
 

position

int position( )

获取当前进度

名称 描述
返回值 当前文件源播放进度
 

seek

int seek( uint32_t seconds )

设置视频源的新进度

名称 描述
seconds 新的播放进度
返回值 0代表方法调用成功,其他代表失败
 

audioID

int audioID( )

获取音频通道ID

名称 描述
返回值 音频通道的ID。-1表示没有音频通道
 

mediaID

const char* mediaID()

获取视频通道ID

名称 描述
返回值 视频通道ID。“”表示没有视频通道
 

setEventHandler

int setEventHandler( IRtcPlayerEventHandler *event)

设置事件回调接口

名称 描述
event 事件回调接口对象。具体请参考:IRtcPlayerEventHandler
返回值 0表示成功,其他表示失败

IRtcPlayerEventHandler 媒体文件源回调接口

成员函数

virtual void  onPlayFinished( ) = 0

函数说明

 

onPlayFinished

int onPlayFinished()

文件源播放完成的回调

名称 描述
返回值 0代表方法调用成功,其他代表失败
enum PlayerFlag:

成员变量:

名称 描述
kFlagPlayAudio 只播放音频
kFlagPlayVideo 播放视频
kFlagLoopback 循环播放
struct RtcPlayerConfig:

成员变量:

类型 名称 描述
int32_t enable_video 是否允许播放视频
int32_t enable_audio 是否允许播放音频
int32_t enable_playout 是否允许本地播放
int32_t enable_publish 是否允许远端播放
int playout_volume 本地播放音量
int publish_volume 远端播放音量
void* viewHwnd 显示窗口句柄
int32_t width 输出视频宽度
int32_t height 输出视频高度
int32_t framerate 输出视频帧率
VIDEO_SCALE_TYPE encScaleType 编码输出裁剪方式。
VIDEO_SCALE_TYPE renderScaleType 本地回显裁剪方式。
Struct AudioLevelInfo:

成员变量:

类型 名称 描述
int local_level 本地音频音量
RemoteAudioLevel remote[32] 远端音频音量
int remote_num 远端音频数量
int mixing_playout_level 本地混音音量
int mixing_publish_level 远端混音音量
ExtAudioLevel external[32] 扩展音频信息
int external_num 扩展音频数量
struct RemoteAudioLevel:

成员变量:

类型 名称 描述
int64_t user_id 远端用户ID
int level 远端用户的音量
struct ExtAudioLevel:

成员变量:

类型 名称 描述
int id 混音或者音效的ID
int playout_level 混音或者音效的播放音量
int publish_level 混音或者音效远端播放音量
 

 

 

 

API回调

结构体

enum   RtcErrorCode
struct   LocalVideoStats
struct   RemoteVideoStats
struct   RtcStats
struct   VideoFrameYUV
struct   VideoFrameES
struct   LocalAudioStats
struct   RemotAudioStats

Public 成员函数

void  onError(int err, const char* msg)
void  onJoinChannel(int64_t channel, int64_t userID, RtcErrorCode result)
void  onLeaveChannel(RtcErrorCode reason )
void  onWarning( int warn, const char* msg )
void  onFirstLocalVideoFrame(const char *mediaID, int width, int height)
void  onFirstRemoteVideoFrame(const char *mediaID, int width, int height)
void  onAudioVolumeIndication( AudioLevelInfo *info)
void  onConnectionLost()
void  onRtcStats(const RtcStats& stats )
void  onLocalVideoStats(const LocalVideoStats& stats)
void  onRemoteVideoStats(const RemoteVideoStats& stats)
void  onUserJoined(int64_t userID, CLIENT_ROLE_TYPE role)
void  onUserOffline(int64_t userID, RtcErrorCode reason)
void  onUserEnableVideo(int64_t userID, const char *mediaID, int mediaType, bool enabled)
void  onMixerVideoCreate(const char *mediaID)
void  onAudioVadIndication( int64_t userID, int active )
void  onLocalAudioStats( const LocalAudioStats& stats )
void  onRemoteAudioStats( const RemoteAudioStats& stats )
void  onAudioMixingFinished( )
void  onConfRefreshToken( const char* token, int code, int remain, int mask )
void  onSetSEI( const char* SEI )
void  onRTMPSenderror( const char* err )
void  onRTMPStatusChange( long long roomID, const char* szRTMPURL, bool status )
void  onRequestChannelKey( )

IVideoFrameObserver 成员函数

void  onCaptureVideoFrame(VideoFrameYUV& frame)
void  onEncodeVideoFrame(VideoFrameES& frame)
void  onReceiveVideoFrame(VideoFrameES& frame)
void  onRenderVideoFrame(VideoFrameYUV& frame)

IAudioFrameObserver 成员函数

void  onRecordAudioFrame(TAudioFrame* frame)
void  onPlaybackAudioFrame(int64_t userID, TAudioFrame* frame)
void  onPlaybackMixedAudioFrame(TAudioFrame* frame)
void  onMixedAudioFrame(TAudioFrame* frame)

详细描述

IRtcEngineEventHandler 接口类用于SDK向 界面 发送回调事件通知,界面应用通过继承该接口类的方法获取 SDK 的事件通知。 接口类的所有方法都有缺省(空)实现, 界面应用可以根据需要只继承关心的事件。在回调方法中,界面应用不应该做耗时或者调用可能会引起阻塞的 API(如 Sleep),否则可能影响 SDK 的运行。

 

结构体描述

 
RtcErrorCode

返回的错误码。

ENTERCONFAPI_NOERROR 0 正常退出
ENTERCONFAPI_TIMEOUT 1 5秒未收到服务器返回结果
ENTERCONFAPI_ENTER_FAILED 2 无法连接服务器
ENTERCONFAPI_VERIFY_FAILED 3 验证码错误
ENTERCONFAPI_BAD_VERSION 4 版本错误
KICKEDBYHOST 101 被主播踢出
PUSHRTMPFAILED 102 rtmp推流失败
SERVEROVERLOAD 103 服务器过载
MASTER_EXIT 104 主播已退出
RELOGIN 105 重复登录
NOAUDIODATA 106 长时间没有上行音频数据
NOVIDEODATA 107 长时间没有上行视频数据
NEWCHAIRENTER 108 其他人以主播身份进入
CHANNELKEYEXPIRED 109 Channel Key失效
USER_EXIT_REASON_TIMEOUT 201 超时退出
USER_EXIT_REASON_LINKCLOSE 202 网络断开退出
RE_NEW_CHANNEL_KEY_FAILD 401 重新鉴权失败
 
LocalVideoStats

统计本地视频上行的相关信息。

属性解释:

类型 名称 描述
char mediaID[128] 视频设备id。
int32_t sentBitrate 发送码率(kbps)。
int32_t sentFrameRate 发送帧率(fps)。
 
RemoteVideoStats

远端视频下行的相关信息。

属性解释:

类型 名称 描述
int32_t userID 视频流所属的用户ID
char mediaID[128] 视频流的媒体ID。
int32_t width 视频流的宽度。
int32_t height 视频流的高度。
int32_t bitrateKbps 视频流的码率。
int32_t frameRate 视频流的帧率。
 
RtcStats

通话相关的统计信息。

属性解释:

类型 名称 描述
uint32_t duration 通话时长(秒),累计值。
uint32_t txBytes 发送字节数(bytes), 累计值。
uint32_t rxBytes 接收字节数(bytes),累计值。
uint16_t txAudioKBitRate 发送音频码率(kbps),瞬时值。
uint16_t txVideoKBitRate 发送视频码率(kbps),瞬时值。
uint16_t rxAudioKBitRate 接收音频码率(kbps),瞬时值。
uint16_t rxVideoKBitRate 接收视频码率(kbps),瞬时值。
uint32_t users 用户数量
double cpuAppUsage app 的CPU占用率
double cpuTotalUsage 总的CPU占用率。
 
VideoFrameYUV

输出YUV数据的结构。

属性解释:

类型 名称 描述
VIDEO_FRAME_TYPE fmt 视频数据格式。目前只支持FRAME_TYPE_YUV420
uint8_t* data[3] YUV数据。
int linesize[3] linesize值
int32_t width 视频宽
int32_t height 视频高
int64_t pts pts值
 
VideoFrameES

视频编码后输出的数据。

属性解释:

类型 名称 描述
VIDEO_FRAME_TYPE fmt 视频数据格式。目前只支持FRAME_TYPE_H264
uint8_t* data 数据
int len 长度
int32_t width 视频宽
int32_t height 视频高。
int64_t pts pts值
 
LocalAudioStats

视频编码后输出的数据。

属性解释:

类型 名称 描述
int32_t muted 本地音频是否静音
int64_t cap_samples c采样数
int64_t bytes_encoded 编码字节数
int32_t bitrate_kbps 码率
int32_t retrans_bitrate_kbps 重传码率
int32_t rtt_ms rtt值
float fraction_lost 丢包率
int32_t audio_level 本地音频音量
 
RemoteAudioStats

视频编码后输出的数据。

属性解释:

类型 名称 描述
int64_t userID 远端用户ID
int32_t ssrc ssrc值
int32_t muted 是否被静音
int32_t bitrate_kbps 码率
int32_t rtt_ms rtt值
float fraction_lost 丢包率
int32_t delay_estimate_ms 播放延迟
int32_t jitter_buffer_ms 网络抖动延迟
int64_t bytes_rcvd 接收字节数
int32_t carton_ms 总卡顿时间
int32_t audio_level 本地音频音量

函数说明

 
发生错误回调 (onError)
void onError(int err, const char* msg)

表示 SDK 运行时出现了(网络或媒体相关的)错误。

参数:

名称 描述
err 错误码
msg 错误提示信息。
错误码:
名称 错误码 原因描述
USER_EXIT_REASON_TIMEOUT 201 网络不通,超时退出
 
通知用户加入频道成功或者失败 (onJoinChannel)
void onJoinChannel( int64_t channel, int64_t userID, RtcErrorCode result )

用户调用joinChannel后,SDK给应用层返回状态的回调方法,用于通知用户加入频道成功或者失败。

参数:

名称 描述
userID 用户唯一标识
result 加入频道的状态码,表示成功或者失败。

错误码:

名称 错误码 原因描述
ENTERCONFAPI_NOERROR 0 成功
ENTERCONFAPI_TIMEOUT 1 5秒未收到服务器返回结果
ENTERCONFAPI_ENTER_FAILED 2 无法连接服务器
ENTERCONFAPI_VERIFY_FAILED 3 验证码错误
ENTERCONFAPI_BAD_VERSION 4 版本错误
 
离开频道回调 (onLeaveChannel)
public void onLeaveChannel( RtcErrorCode reason )

应用程序调用 leaveChannel() 方法时,SDK 提示应用程序离开频道成功。离开频道时,SDK给应用层返回状态的回调方法。

参数:

名称 描述
Reason 离开频道的原因。
警告信息回调 (onWarning)
public void onWarning( int warn, const char* msg )

SDK 提示应用程序发生不规范操作。

参数:

名称 描述
warn 消息类型。
msg 消息内容。

错误码:

名称 错误码 原因描述
ENTERCONFAPI_NOERROR 0 正常退出
KICKEDBYHOST 101 被主播踢出
PUSHRTMPFAILED 102 rtmp推流失败
SERVEROVERLOAD 103 服务器过载
MASTER_EXIT 104 主播已退出
RELOGIN 105 重复登录
NOAUDIODATA 106 长时间没有上行音频数据
NOVIDEODATA 107 长时间没有上行视频数据
NEWCHAIRENTER 108 其他人以主播身份进入
CHANNELKEYEXPIRED 109 Channel Key失效
USER_EXIT_REASON_TIMEOUT 201 超时退出
USER_EXIT_REASON_LINKCLOSE 202 网络断开退出
RE_NEW_CHANNEL_KEY_FAILD 401 重新鉴权失败
 
本地视频显示回调 (onFirstLocalVideoFrame)
public void onFirstLocalVideoFrame(const char *mediaID, int width, int height)

接收到远端第一帧视频时回调。

参数:

名称 描述
mediaID 视频通道的唯一标识
width 视频宽度
height 视频高度
 
远端视频显示回调 (onFirstRemoteVideoFrame)
public void onFirstRemoteVideoFrame(const char *mediaID, int width, int height)

接收到远端第一帧视频时回调。

参数:

名称 描述
mediaID 视频通道的唯一标识
width 视频宽度。
height 视频高度。
 
说话声音音量提示回调 (onAudioVolumeIndication)
void onAudioVolumeIndication( AudioLevelInfo *info)

提示谁在说话及其音量。默认禁用。可以通过 enableAudioVolumeIndication 方法设置。

参数:

名称 描述
info 音频回调信息。详情请参考:AudioLevelInfo
 
连接丢失回调 (onConnectionLost)
public void onConnectionLost()

当网络异常断开后,信令连接丢失回调。

 
统计数据回调 (onRtcStats)
public void onRtcStats(const RtcStats& stats )

统计数据回调。该回调定期上报 Engine 的运行时的状态,每两秒触发一次。

参数:

名称 描述
stats SDK给上层应用返回的统计数据 RtcStats
 
本地视频统计回调 (onLocalVideoStats)
public void onLocalVideoStats(const LocalVideoStats& stats)

本地视频统计回调,报告更新本地视频统计信息,该回调函数每两秒触发一次。

参数:

名称 描述
stats 本地视频相关的统计信息,详情请参考: LocalVideoStats
 
远端视频统计回调 (onRemoteVideoStats)
public void onRemoteVideoStats(const RemoteVideoStats& stats)

远端视频统计回调,报告更新远端视频统计信息,该回调函数每两秒触发一次。

参数:

名称 描述
stats 远端视频的统计信息,详情请参考: RemoteVideoStats
 
其他用户加入当前频道 (onUserJoined)
public void onUserJoined(int64_t userID, CLIENT_ROLE_TYPE role)

其他用户加入当前频道。

参数:

名称 描述
UserID 加入频道的用户ID。
Role 加入频道的用户的身份。
 
其他用户离开当前频道 (onUserOffline)
public void onUserOffline(int64_t userID, RtcErrorCode reason)

其他用户离开当前频道回调,主动离开或掉线。

参数:

名称 描述
userID 离开频道的用户ID
reason 该用户离开频道的原因
 
用户启用/关闭了视频功能回调 (onUserEnableVideo)
public void onUserEnableVideo(int64_t userID, const char *mediaID, int mediaType, bool enabled)

提示其他用户打开/关闭了视频通道id为mediaID视频。

参数:

名称 描述
userID 用户ID
medaiID 视频通道ID
medaiType 视频源的类型。0:表示摄像头采集;1:表示屏幕采集;2:表示外部视频源
enabled 用户视频通道的状态。True表示通道打开,false表示通道关闭。
 
混屏视频通道创建的回调,特殊应用 (onMixerVideoCreate)
public void onMixerVideoCreate(const char *mediaID)

参数:

名称 描述
mediaID 混屏视频通道的ID
 
VAD功能(人声检测)的回调(onAudioVadIndication)
public void onAudioVadIndication( int64_t userID, int active )

参数:

名称 描述
userID 远端用户ID
active 用户的语音检测状态。0表示噪声或者环境声音,1表示是人声
 
本地音频状态的回调(onLocalAudioStats)
public void onLocalAudioStats( const LocalAudioStats& stats )

参数:

名称 描述
stats 本地音频状态。详情请参考: LocalAudioStats
 
远端音频状态的回调(onRemoteAudioStats)
public void onRemoteAudioStats( const RemoteAudioStats& stats )

参数:

名称 描述
stats 远端音频状态。详情请参考: RemoteAudioStats
 
混音文件播放结束的回调(onAudioMixingFinished)
public void onAudioMixingFinished( )

参数:

名称 描述
返回值
 
混音文件播放结束的回调(OnConfRefreshToken)
public void OnConfRefreshToken( const char* token, int code, int remain, int mask )

参数:

名称 描述
token 客户端发送的鉴权token
code 鉴权返回值。0:鉴权成功;-1:参数异常;-2:过期;-4:刷新失败
remain s剩余有效期
mask 业务掩码
返回值
 
Sei 回调方法(onSetSEI)
public void onSetSEI( const char* sei )

参数:

名称 描述
sei 包含混屏显示位置信息的json字符串
返回值
 
本地推流状态回调(onRTMPsenderror)
public void onRTMPsenderror( const char* err )

本地推流状态回调。主要用在本地直推成功或者失败的回调

参数:

名称 描述
err 错误吗
返回值
 
(onRTMPStatusChange)
public void onRTMPStatusChange( long long roomID, const char* szRTMPURL, bool status )

服务器推流状态回调。直播模式下,返回服务器推流的状态变化

参数:

名称 描述
roomID 频道号,唯一标识一个频道
szRTMPURL 推流地址,唯一标识一个旁路推流的地址
status 推流成功或者失败的状态。true表示推流成功,false表示推流失败
返回值
 
Token即将到期(onRequestChannelKey)
public void onRequestChannelKey( )

Token即将到期时,回调给上层应用,提醒需要重新刷新token

参数:

名称 描述
返回值

IVideoFrameObserver 接口类用于向应用程序发送视频数据的回调。

 
本地视频采集回调 (onCaptureVideoFrame)
public void onCaptureVideoFrame(VideoFrameYUV& frame)

参数:

名称 描述
Frame 视频采集的YUV数据,用户可以在这里编辑后返回给视频库进行编码
 
本地视频编码后的回调 (onEncodeVideoFrame)
public void onEncodeVideoFrame(VideoFrameES& frame)

参数:

名称 描述
Frame 编码后的视频帧数据
 
本地视频编码后的回调 (onReceiveVideoFrame)
public void onReceiveVideoFrame(VideoFrameES& frame)

参数:

名称 描述
Frame 接收到的远端的视频帧数据
 
本地视频编码后的回调 (onRenderVideoFrame)
public void onRenderVideoFrame(VideoFrameYUV& frame)

参数:

名称 描述
Frame 解码后的远端视频帧数据

IAudioFrameObserver 接口类用于向应用程序发送视频数据的回调。

 
本地麦克风采集回调 (onRecordAudioFrame)
public void onRecordAudioFrame(TAudioFrame* frame)

参数:

名称 描述
frame 麦克风采集的音频数据
 
远端用户音频数据的回调 (onPlaybackAudioFrame)
public void onPlaybackAudioFrame( int64_t userID, TAudioFrame* frame )

参数:

名称 描述
frame 远端用户的音频数据
 
远端用户音频混音后的音频数据回调 (onPlaybackMixedAudioFrame)
public void onPlaybackMixedAudioFrame(TAudioFrameES* frame)

参数:

名称 描述
frame 所有远端音频数据混音后的音频帧数据回调
 
本地和远端混音后的音频数据回调 (onMixedAudioFrame)
public void onMixedAudioFrame(VideoFrameYUV& frame)

参数:

名称 描述
frame 本地和远端混音后的音频数据
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

API错误码

枚举值

int  ENTERCONFAPI_NOERROR
int  ENTERCONFAPI_TIMEOUT
int  ENTERCONFAPI_ENTER_FAILED
int  ENTERCONFAPI_VERIFY_FAILED
int  ENTERCONFAPI_BAD_VERSION
int  KICKEDBYHOST
int  PUSHRTMPFAILED
int  SERVEROVERLOAD
int  MASTER_EXIT
int  RELOGIN
int  NOAUDIODATA
int  NOVIDEODATA
int  NEWCHAIRENTER
int  CHANNELKEYEXPIRED
int  USER_EXIT_REASON_TIMEOUT
int  USER_EXIT_REASON_LINKCLOSE
int  RE_NEW_CHANNEL_KEY_FAILD

详细描述

错误码在枚举 RtcErrorCode 类型中。

成员说明

 
ENTERCONFAPI_NOERROR

操作成功


 
ENTERCONFAPI_TIMEOUT

5秒未收到服务器返回结果


 
ENTERCONFAPI_ENTER_FAILED

无法连接服务器


 
ENTERCONFAPI_VERIFY_FAILED

验证码错误


 
ENTERCONFAPI_BAD_VERSION

版本错误


 
KICKEDBYHOST

被主播踢出


 
PUSHRTMPFAILED

rtmp推流失败


 
SERVEROVERLOAD

服务器过载


 
MASTER_EXIT

主播已退出


 
RELOGIN

重复登录


 
NOAUDIODATA

长时间没有上行音频数据


 
NOVIDEODATA

长时间没有上行视频数据


 
NEWCHAIRENTER

其他人以主播身份进入


 
CHANNELKEYEXPIRED

Channel Key失效


 
USER_EXIT_REASON_TIMEOUT

超时退出


 
USER_EXIT_REASON_LINKCLOSE

网络断开退出


 
RE_NEW_CHANNEL_KEY_FAILD

重新鉴权失败