文档首页 > > SDK参考> Windows SDK> 接口参考> IHRTCEngine

IHRTCEngine

分享
更新时间:2020/11/02 GMT+08:00

本章节介绍了Windows SDK的IHRTCEngine接口详情。

表1 IHRTCEngine接口

接口

描述

create

创建IHRTCEngine对象。

IHRTCEngine

析构函数。

setLogParam

设置日志参数,在initialize前调用。

initialize

IRtcEngine对象初始化函数。

release

释放IRtcEngine对象资源,退出时调用。

joinRoom

加入房间。

leaveRoom

离开房间。

setupLocalView

设置本地视图。

startRemoteStreamView

设置远端用户视图。

stopRemoteStreamView

关闭远端用户的显示视图。

setRemoteViewDisplayMode

设置远端用户视图显示模式。

muteLocalVideo

设置是否发送本地视频流。

muteLocalAudio

设置是否发送本地音频流。

setRemoteAudioTopNVoice

设置在所有可接收的音频流中,接收前N个音量最大的音频流。

muteRemoteAudio

设置是否接收对应远端用户的音频流。

muteAllRemoteAudio

设置是否接收所有用户的音频流。

logUpload

开启日志上传

setUserRole

设置用户在本房间内的角色,角色切换使用。

setVideoEncParam

设置编码器参数。

adjustRecordingVolume

调整录音音量。

adjustPlaybackVolume

音频播放音量。

setDefaultStreamRecvMode

设置是否开启默认流。

startPreview

开始本地预览。

stopPreview

关闭本地预览。

startScreenCapture

开启屏幕共享。

stopScreenCapture

停止屏幕共享。

startRemoteSubStreamView

开启共享窗口视图。

stopRemoteSubStreamView

关闭共享窗口视图。

setRemoteSubStreamViewDisplayMode

设置共享流视图显示模式。

connectOtherRoom

开启跨房,加入其他房间。

disconnectOtherRoom

结束跨房,离开其他房间。

setScreenSmooth

设置是否开启共享发流的流畅度优先。

setShareComputerSound

设置是否开启系统音频采集、发送。

setLocalViewMirror

设置本地摄像头预览画面的镜像模式。

setVideoEncoderMirror

设置编码器输出的画面镜像模式。

setExternalAudioCapture

设置是否开启外部音频采集。

pushExternalAudioFrame

输入外部音频数据。

setExternalVideoCapture

设置是否开启外部视频采集。

pushExternalVideoFrame

输入外部视频数据。

enableLocalVideo

设置是否开启摄像头采集视频。

setExternalMediaFrameOutput

设置是否开启音视频自渲染。

GetAudioDeviceManager

获取系统音频设备管理对象。

GetVideoDeviceManager

获取系统视频设备管理对象。

startAudioFile

播放音频文件。

stopAudioFile

停止播放音频文件。

pauseAudioFile

暂停播放音频文件。

resumeAudioFile

恢复播放音频文件。

startNetworkTest

会前网络质量开启测试。

stopNetworkTest

会前网络质量停止测试。

enableRtcStats

开启打点统计。

create

huawei::rtc::IHRTCEngine*  create(void);

功能说明

创建IHRTCEngine对象。

返回参数

  • huawei::rtc::IHRTCEngine*:IHRTCEngine对象。
  • NULL:返回失败

IHRTCEngine

virtual ~IHRTCEngine() {}

功能说明

析构函数。

setLogParam

int setLogParam(bool enable, const HRTCLogInfo &logInfo)

功能说明

设置日志参数,在initialize前调用。

请求参数

  • enable:true表示开启日志功能,false表示关闭日志功能。
  • logInfo:日志信息。具体请参见HRTCLogInfo
返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

initialize

int initialize(const char* domain, const char* appId, IHRTCEngineEventHandler* eventHandler)

功能说明

IRtcEngine对象初始化函数。

请求参数

  • domain:域名
  • appId: 应用ID,只有App ID相同的应用程序才能进入同一个房间进行互通。
  • eventHandler:引擎回调句柄,指定一个回调事件。SDK通过指定的事件通知应用程序的运行事件,如加入或离开房间等。具体请参见事件回调

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

release

void release()

功能说明

释放IRtcEngine对象资源,退出时调用。

注意事项

如果资源已经释放,需要重新调用createinitialize做初始化。

joinRoom

int joinRoom(const HRTCUserInfo &userInfo, const char* roomId, HRTCMediaType mediaType)

功能说明

加入房间。

该方法让用户加入通话房间。如果已在通话中,用户必须调用leaveRoom退出当前通话,才能进入下一个房间。

请求参数

  • userInfo:用户信息。具体请参见HRTCUserInfo
  • roomId:标识通话的房间名称,长度不超过HRTC_MAX_ROOMID_LEN.
  • mediaType:媒体类型。具体请参见HRTCMediaType

返回参数

  • 0:方法调用成功。
  • >0:方法调用失败。具体请参见HRTCErrorCode

注意事项

会触发以下回调:

leaveRoom

int leaveRoom()

功能说明

离开房间。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

  • 必须调用leaveRoom结束通话后才可以开始下一次通话。
  • 会触发以下回调:

setupLocalView

int setupLocalView(view_t view, HRTCVideoDisplayMode viewMode)

功能说明

设置本地视图。

该方法设置本地视频显示信息。 App通过调用此接口绑定本地视频流的显示视窗(view),并设置视频显示模式。

请求参数

【返回参数】

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

startRemoteStreamView

int startRemoteStreamView(const char* userId, view_t view, HRTCStreamType streamType)
int startRemoteStreamView(const char* userId, view_t view, HRTCStreamType streamType,bool disableAdjustRes)

功能说明

设置远端用户视图。

请求参数
  • userId:远端用户的唯一标识
  • view:窗口句柄。
  • streamType:视频分辨率,具体请参见HRTCStreamType
  • disableAdjustRes: 禁用上行流编码码率自适应,默认值false,开启编码码率自适应。

【返回参数】

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

stopRemoteStreamView

int stopRemoteStreamView(const char* userId)

功能说明

关闭远端用户的显示视图。

请求参数

userId:远端用户的唯一标识

【返回参数】

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

setRemoteViewDisplayMode

int setRemoteViewDisplayMode(const char* userId, HRTCVideoDisplayMode viewMode)

功能说明

设置远端用户视图显示模式。

请求参数
  • userId:远端用户的唯一标识。
  • viewMode :视图显示模式。具体请参见HRTCVideoDisplayMode,默认RTC_VIDEO_DISPLAY_HIDDEN,通过裁剪的方式保持宽高比。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

muteLocalVideo

int muteLocalVideo(bool mute)

功能说明

设置是否开启发送本地视频流。

请求参数

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

注意事项
  • 默认开启本地视频发流。需要在加入房间后调用。
  • 关闭本地视频发流,不影响本地视图采集,仍可见本地视图。
  • 远端用户选看该用户时,远端用户会触发onRemoteVideoStateChanged远端流状态变化回调。

muteLocalAudio

int muteLocalAudio(bool mute)

功能说明

设置是否开启发送本地音频流。

请求参数

mute:true表示关闭本地音频发流。false表示开启本地音频发流。

【注意事项】
  • 默认开启本地音频发流。需要在加入房间后调用。
  • 关闭本地音频发流,不影响本地音频采集。
  • 远端用户选看该用户时,远端用户会触发onRemoteAudioStateChanged远端流状态变化回调。

setRemoteAudioTopNVoice

int setRemoteAudioTopNVoice(unsigned int topNVoice)

功能说明

设置在所有可接收的音频流中,接收前N个音量最大的音频流。

请求参数

topNVoice:设置接收的音频流数量。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

默认接收所有用户的音频流。建议设置为3,表示接收前3个音量最大的音频流。

muteRemoteAudio

int muteRemoteAudio(const char* userId, bool mute)

功能说明

设置是否接收对应远端用户的音频流。

请求参数

  • userId: 远端用户的userId,唯一标识。
  • mute:true表示取消音频流接收。false表示开启音频流接收。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

muteAllRemoteAudio

int muteAllRemoteAudio(bool mute)

功能说明

设置是否接收所有用户的音频流。

请求参数

mute:true表示取消接收,false表示开启接收。

【返回参数】

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

【注意事项】

  • 取消所有音频流接收,同时也会取消接收新加入用户的音频流。
  • 开启所有音频流接收,同时也会开启接收新加入用户的音频流。
  • 默认开启所有音频流接收。

logUpload

int logUpload()

功能说明

开启日志上传

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

会触发以下回调:

setUserRole

int setUserRole(HRTCRoleType role)

功能说明

设置用户在本房间内的角色,角色切换使用。

请求参数

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

【注意事项】

  • 加入房间后才可以做用户角色切换,当前仅支持joiner,player角色切换。
  • 切换成功触发onUserRoleChanged回调。切换失败会触发onError回调,返回HRTC_ERR_CODE_USER_ROLE_CHANGE_FAIL错误码。

setUserRole

int setUserRole(const char* roomId, HRTCRoleType role)

功能说明

设置用户在指定房间的角色,角色切换使用。

请求参数

  • roomId:设置角色切换的房间号。
  • role:用户角色,具体请参见HRTCRoleType

【返回参数】

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

  • 加入指定房间后才可以在指定房间内进行角色切换,当前仅支持joiner,player角色切换。roomId可以设置为本房间,即在本房间做角色切换。
  • 切换成功触发onUserRoleChanged回调。切换失败会触发onError回调,返回HRTC_ERR_CODE_USER_ROLE_CHANGE_FAIL错误码。

setVideoEncParam

int setVideoEncParam(unsigned int totalBitRate, HRTCVideoEncParam *encoderParams, unsigned int encoderCount)

功能说明

设置编码器参数。

请求参数

  • totalBitRate:视频编码总带宽,默认4096。
  • encoderParams:视频编码分辨率列表。具体请参见HRTCVideoEncParam,默认HRTC_STREAM_TYPE_HD,HRTC_STREAM_TYPE_FHD。
  • encoderCount:视频编码分辨率列表数量。
返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

adjustRecordingVolume

int adjustRecordingVolume(unsigned int volume)

功能说明

设置录制音量。

请求参数

  • volume:范围[0-100],其中10表示原始音量。
返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

不影响系统音量。

adjustPlaybackVolume

int adjustPlaybackVolume(unsigned int volume)

功能说明

设置播放音量。

请求参数

  • volume:范围[0-100],其中10表示原始音量。
【返回参数】
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

不影响系统音量。

setDefaultStreamRecvMode

int setDefaultStreamRecvMode(bool isAutoRecv)

功能说明

设置是否开启默认流。

请求参数

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

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

startPreview

int startPreview();

功能说明

开始本地预览。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode
注意事项
  • 若需要在房间内预览,可调用setupLocalView设置有效view,设置为0表示关闭预览。
  • 需要调用stopPreview关闭预览,否则将一直处于预览状态。该接口限制在进入房间前调用,在房间内设置不生效。

stopPreview

int stopPreview();

功能说明

停止本地预览。

返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

需要调用stopPreview关闭预览,否则将一直处于预览状态。该接口限制在进入房间前调用,在房间内设置不生效。

startScreenCapture

int startScreenCapture()

功能说明

开启屏幕共享。

返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

仅支持PC端,分享成功将会触发onScreenCaptureStarted回调。当前仅支持主屏全屏共享。

stopScreenCapture

int stopScreenCapture()

功能说明

停止屏幕共享。

返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

仅支持PC端,将会触发onScreenCaptureStoped回调。

startRemoteSubStreamView

int startRemoteSubStreamView(const char* userId, view_t view)

功能说明

当远端开启共享,本地接收到远端共享开启消息后,设置共享窗口视图。

请求参数

  • userId:远端用户的唯一标识。
  • view :窗口句柄。
返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

收到onUserSubStreamAvailable消息后,获取对应的userId。

stopRemoteSubStreamView

int stopRemoteSubStreamView(const char* userId)

功能说明

关闭共享窗口视图。

请求参数

userId:远端用户的唯一标识。对应onUserSubStreamAvailable返回的共享用户标识。

返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

setRemoteSubStreamViewDisplayMode

int setRemoteSubStreamViewDisplayMode(const char* userId, HRTCVideoDisplayMode viewMode

功能说明

设置共享流视图显示模式。

请求参数

  • userId:远端用户的唯一标识。
  • viewMode:视图显示模式 。具体请参见HRTCVideoDisplayMode,默认RTC_VIDEO_DISPLAY_FIT,通过扩边的方式保持宽高比。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

connectOtherRoom

int connectOtherRoom(HRTCConnectInfo* connectInfo)

功能说明

开启跨房,加入其他房间。

请求参数

connectInfo:设置开启跨房的房间号,角色,具体请参见HRTCConnectInfo

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

收到onUserJoined回调后才能调用跨房接口。开启跨房前,需要保证该用户在本房间内为joiner角色。开启跨房后,该用户在本房间不允许再做角色切换。跨房时需要以player角色加入其他房间,即请求参数connectInfo->role需要设置为HRTC_ROLE_TYPE_PLAYER。

disconnectOtherRoom

int disconnectOtherRoom(HRTCConnectInfo* connectInfo)

功能说明

结束跨房,离开其他房间。

请求参数

connectInfo:设置跨房的房间号和角色,具体请参见HRTCConnectInfo

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

该调用只会使得用户离开connectOtherRoom连接的房间,并不会离开本房间。

setScreenSmooth

int setScreenSmooth(bool enable)

功能说明

设置是否开启共享发流的流畅度优先。

请求参数

enable:true表示共享流分辨率为720p,false表示共享流分辨率为1080p。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

开启后,共享流发流分辨率为720p,否则发流分辨率为1080p。默认不开启。

setShareComputerSound

int setShareComputerSound(bool enable)

功能说明

设置是否开启系统音频采集、发送。

请求参数

enable:true表示开启系统音频采集、发送。false表示取消系统音频采集、发送。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

setLocalViewMirror

int setLocalViewMirror(HRTCVideoMirrorType mirrorType)

功能说明

设置本地摄像头预览画面的镜像模式。

请求参数

mirrorType:镜像模式,是否开启镜像。具体请参见HRTCVideoMirrorType

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

只改变本地摄像头预览视图,不改变远端观看视图。

setVideoEncoderMirror

int setVideoEncoderMirror(HRTCVideoMirrorType mirrorType)

功能说明

设置编码器输出的画面镜像模式。

请求参数

mirrorType:镜像模式,是否开启镜像。具体请参见HRTCVideoMirrorType

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

注意事项

该接口不改变本地摄像头的预览画面,但会改变另一端用户看到的和服务器录制的画面效果。

setExternalAudioCapture

int setExternalAudioCapture(int enabled, int sampleRate, int channels)

功能说明

设置是否开启外部音频采集。

请求参数

  • enable:true表示开启音频自采集。false表示取消音频自采集。
  • sampleRate:音频采样率,支持8k/16k/44.1k/48k。
  • channels:音频声道数,支持单声道。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode
注意事项
  • 加入房间前调用,不支持房间内切换。
  • 自采集音频输入规格:
    • 格式:PCM。
    • 采样率:8k/16k/44.1k/48k 。
    • 声道数:单声道。
    • 位数:16。

pushExternalAudioFrame

int pushExternalAudioFrame(void* audioData, int size)

功能说明

输入外部音频数据。

请求参数

  • audioData:音频数据。
  • size:音频输入数据大小。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode
注意事项
  • 此方法调用前,需要先调用setExternalAudioCapture设置开启外部音频采集。
  • 数据输入周期:10ms。
  • 音频输入数据大小:10 * sampleRate * channels * 16 / 8 / 1000。

setExternalVideoCapture

int setExternalVideoCapture(bool enable)

功能说明

设置是否开启外部视频采集。

请求参数

enable:true表示开启视频自采集。false表示取消视频自采集。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode
注意事项
  • 加入房间前调用,不支持房间内切换。
  • 视频支持格式:I420。

pushExternalVideoFrame

int pushExternalVideoFrame(HRTCVideoFrame* videoFrame)

功能说明

输入外部视频数据。

请求参数

videoFrame:视频自采集数据格式。具体请参见HRTCVideoFrame

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode
注意事项
  • 此方法调用前,需要先调用setExternalVideoCapture设置开启外部视频采集。
  • 数据输入周期:同视频周期,1/帧率。

enableLocalVideo

int enableLocalVideo(bool enabled)

功能说明

设置是否开启摄像头采集视频。

请求参数

enable:true表示开启。false表示关闭。

注意事项

默认开启本地视频采集。关闭本地视频采集,不影响视频流发送,不会触发远端流状态变化回调。

setExternalMediaFrameOutput

int setExternalMediaFrameOutput(bool audioEnable, bool videoEnable)

功能说明

设置是否开启音视频自渲染。

请求参数

  • audioEnable:
    • true:开启音频自渲染,通过onPlaybackAudioFrame回调输出音频数据。
    • false:取消音频自渲染,音频数据输出到系统音频设备中播放。
  • videoEnable:
    • true:开启视频自渲染,通过onRenderVideoFrame回调输出视频数据。
    • false:取消视频自渲染,视频数据输出到对应的view上。
注意事项
  • 默认开闭音视频自渲染,音视频自渲染可单独控制开关。
  • 加入房间前调用,不支持房间内开关。

GetAudioDeviceManager

IHRTCAudioDeviceManager* GetAudioDeviceManager()

功能说明

获取系统音频设备管理对象。

请求参数

返回参数

具体请参见IHRTCAudioDeviceManager

GetVideoDeviceManager

IHRTCAudioDeviceManager* GetVideoDeviceManager()

功能说明

获取系统视频设备管理对象。

请求参数

返回参数

具体请参见IHRTCVideoDeviceManager

startAudioFile

virtual int startAudioFile(const char *filePath, int playMode, int cycle, int replace) = 0;

功能说明

播放音频文件,加入房间前调用。若角色为“publisher”,不支持调用。

请求参数

  • ilePath:文件完整路径名。
  • playMode:播放模式。
  • cycle:循环次数,0表示无限循环。
  • replace:远端模式下面是否需要和麦克风做混音。
返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

stopAudioFile

virtual int stopAudioFile() = 0;

功能说明

停止播放音频文件 ,加入房间前调用,若角色为“publisher”,不支持调用。

请求参数

返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

pauseAudioFile

virtual int pauseAudioFile() = 0;

功能说明

暂停播放音频文件,加入房间前调用,若角色为“publisher”,不支持调用。

请求参数

返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

resumeAudioFile

virtual int resumeAudioFile() = 0;

功能说明

恢复播放音频文件,加入房间前调用。若角色为“publisher”,不支持调用。

请求参数

返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

startNetworkTest

virtual int startNetworkTest(const HRTCNetworkTestConfig* networkTestConfig) = 0;

功能说明

会前网络质量开启测试,加入会议前调用,要等探测结束后才能加入房间。

请求参数

networkTestConfig:网络探测参数格式。具体请参见HRTCNetworkTestConfig。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode
注意事项
  • 会触发onNetworkTestQuality、onNetworkTestResultl两个回调并通过回调返回具体的网络测试结果,时间上需要20-60s。

stopNetworkTest

virtual int stopNetworkTest() = 0;

功能说明

会前网络质量停止测试

请求参数

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

enableRtcStats

virtual int enableRtcStats(bool enabled) = 0;

功能说明

开启打点统计,可以在初始化之前或之后调用

请求参数

enabled 是否开启打点 SDK默认关闭

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问