11#ifndef RTC_CTRL_INTERFACE_H
12#define RTC_CTRL_INTERFACE_H
223 const std::list<
void*>& excludedWindowList = std::list<
void*>(),
224 bool preferMotion = false,
238 const std::list<
void*>& excludedWindowList = std::list<
void*>(),
249 virtual
int switchScreenShare(const uint32_t& monitorId, const std::list<
void*>& excludedWindowList,
bool preferMotion = false) = 0;
264 const std::list<
void*>& excludedWindowList = std::list<
void*>(),
265 bool preferMotion = false,
281 const std::list<
void*>& excludedWindowList = std::list<
void*>(),
virtual void startAppShare(void *hwnd, bool preferMotion=false, const NERtcCallback &callback=NERtcCallback())=0
开始应用共享
virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels)=0
开启或关闭外部音频源数据输入
virtual std::string getScreenSharingUserUuid() const =0
查询屏幕共享者用户Id
virtual int stopChannelMediaRelay()=0
停止跨房间媒体流转发
virtual int switchScreenShare(const uint32_t &monitorId, const std::list< void * > &excludedWindowList, bool preferMotion=false)=0
切换本地共享屏幕
virtual int setEffectSendVolume(uint32_t effectId, int volume)=0
设置音效文件发送音量。
virtual void getScreenCaptureSourceList(const NERoomSize &thumbSize, const NERoomSize &iconSize, bool includeScreen, const NERoomCaptureSourceCallback &callback)=0
获取可以共享的数据源
virtual void reconnectMyAudio(const NERtcCallback &callback)=0
恢复音频,恢复音频后将恢复自己与其他人的音频互通,但是具体音频是否可听见还是取决于成员的mute状态
virtual void startScreenShare(const uint32_t &monitorId, const std::list< void * > &excludedWindowList=std::list< void * >(), bool preferMotion=false, const NERtcCallback &callback=NERtcCallback())=0
开启本地屏幕共享
virtual int takeRemoteSnapshot(const std::string &userUuid, NERoomRtcVideoStreamType stream_type, const NERoomTakeSnapshotCallback &callback)=0
virtual int enableLocalAudioSubStream()=0
开启音频辅流。
virtual int disableEncryption()=0
virtual void startChannelMediaRelay(const NERtcCallback &callback=NERtcCallback())=0
开始跨房间媒体流转发
virtual int enableEncryption(const std::string &key, NEEncryptionType encryptionType)=0
virtual int pauseAudioMixing()=0
暂停播放音乐文件及混音。
virtual int unsubscribeRemoteVideoStream(const std::string &userUuid)=0
取消订阅用户视频流
NECallback<> NERtcCallback
rtc操作结果回调
virtual int playEffect(uint32_t effectId, const NERoomCreateAudioEffectOption &option)=0
播放指定音效文件。
virtual int pauseLocalVideoCapture()=0
暂停本地视频采集
virtual int sendSEIMsg(const std::string &data, NERoomRtcVideoStreamType type)=0
发送媒体补充增强信息(SEI)。 在本端推流传输视频流数据同时,发送流媒体补充增强信息来同步一些其他附加信息。当推流方发送 SEI 后,拉流方可通过监听 onRtcRecvSEIMsg 的回调获取 S...
virtual void unmuteMemberAudio(const std::string &userUuid, const NERtcCallback &callback=NERtcCallback())=0
尝试打开成员音频,会进行权限校验
virtual int setAudioMixingPlaybackVolume(int volume)=0
调节伴奏播放音量。
virtual void stopShareSystemAudio(const NERtcCallback &callback)=0
停止本地系统音频共享
virtual void joinRtcChannel(const std::string &channelName, const NERtcCallback &callback=NERtcCallback())=0
加入音视频子房间。注意:在加入其他子房间前,需要先通过[joinRtcChannel]加入主房间。
virtual void leaveRtcChannel(const NERtcCallback &callback)=0
离开rtc主频道
virtual void unmuteMyVideo(const NERtcCallback &callback=NERtcCallback())=0
打开本端视频
NECallback< const std::list< NERoomScreenCaptureInfo > & > NERoomCaptureSourceCallback
获取可以共享的数据源回调列表,列表内容
virtual int setClientRole(NERoomRTCClientRole clientRole)=0
设置用户在 RTC 房间的角色
virtual void muteMyAudio(bool enableMediaPub=false, const NERtcCallback &callback=NERtcCallback())=0
开启本地静音,并根据 enableMediaPub 参数决定是否关闭本地上行音频流
virtual int setEffectPlaybackVolume(uint32_t effectId, int volume)=0
设置音效文件播放音量。
virtual int disableLocalAudioSubStream()=0
关闭音频辅流。
virtual void startRectShare(const NERectangle &sourceRectangle, const NERectangle ®ionRectangle, const std::list< void * > &excludedWindowList=std::list< void * >(), bool preferMotion=false, const NERtcCallback &callback=NERtcCallback())=0
开始区域共享
virtual int takeLocalSnapshot(NERoomRtcVideoStreamType stream_type, const NERoomTakeSnapshotCallback &callback)=0
virtual int resumeEffect(uint32_t effectId)=0
恢复播放指定音效文件。
~INERoomRtcController() override=default
析构函数
virtual int pushExternalAudioFrame(const NERoomAudioFrame &frame)=0
推送外部音频数据输入
virtual int switchAppShare(void *hwnd, bool preferMotion=false)=0
切换应用共享
virtual void muteMemberVideo(const std::string &userUuid, const NERtcCallback &callback=NERtcCallback())=0
尝试关闭成员视频,会进行权限校验
virtual int setupLocalVideoSubStreamCanvas(const NERoomVideoView &videoView)=0
设置本地视频辅流画布
virtual int startSystemAudioLoopbackCapture()=0
屏幕共享时开始共享本地电脑声音
virtual int stopSystemAudioLoopbackCapture()=0
屏幕共享时关闭共享本地电脑声音
virtual void leaveRtcChannel(const std::string &channelName, const NERtcCallback &callback)=0
离开rtc子频道
virtual void pauseShare(const NERtcCallback &callback=NERtcCallback())=0
暂停共享
virtual int setCloudProxy(NERoomRtcTransportType transportType)=0
brief 开启/关闭云代理服务
virtual void startShareSystemAudio(const NERtcCallback &callback)=0
开启本地系统音频共享
virtual void unmuteMyAudio(const NERtcCallback &callback=NERtcCallback())=0
关闭本地静音,并开启本地上行音频流
virtual void stopMemberShare(const std::string &userUuid, const NERtcCallback &callback=NERtcCallback())=0
停止成员共享
virtual int setupRemoteVideoSubStreamCanvas(const std::string &userUuid, const NERoomVideoView &videoView)=0
设置远端视频辅流画布
virtual void resumeShare(const NERtcCallback &callback=NERtcCallback())=0
恢复共享
virtual void disconnectMyAudio(const NERtcCallback &callback)=0
断开音频,音频断开后将会中断自己与房间里其他人的音频互通。
virtual int enableCaption(bool enable)=0
virtual int setAudioSubscribeOnlyBy(const std::vector< std::string > &userUuids)=0
设置自己的音频只能被房间内指定的人订阅,默认房间所有其他人都可以订阅自己的音频。
virtual int subscribeRemoteVideoStream(const std::string &userUuid, NEVideoStreamType streamType)=0
订阅用户视频流
virtual int unsubscribeRemoteVideoSubStream(const std::string &userUuid)=0
取消订阅用户视频辅流
virtual int adjustUserPlaybackSignalVolume(const std::string &userUuid, int volume)=0
调节本地播放的指定远端用户的信号音量
virtual void switchScreenCaptureSource(const NERoomScreenCaptureInfo &sourceInfo, const NERectangle ®ionRectangle, const NERoomScreenSharingOption &option, const NERtcCallback &callback=NERtcCallback())=0
设置屏幕分享参数,该方法在屏幕分享过程中调用,用来快速切换采集源。 如果您期望在屏幕分享的过程中,切换想要分享的窗口,可以再次调用这个函数而不需要重新开启屏幕分享。 支持如下四种情况:
virtual int resumeAllEffects()=0
恢复播放所有音效文件。
virtual void muteMyVideo(const NERtcCallback &callback=NERtcCallback())=0
关闭本端视频
virtual int setupRemoteVideoCanvas(const std::string &userUuid, const NERoomVideoView &videoView)=0
设置远端视频画布
virtual int startAudioMixing(const NERoomCreateAudioMixingOption &option)=0
开始播放音乐文件。
virtual int stopAllEffects()=0
停止播放所有音效文件。
virtual void stopMemberSystemAudioShare(const std::string &userUuid, const NERtcCallback &callback=NERtcCallback())=0
停止成员音频共享
virtual void muteMemberAudio(const std::string &userUuid, const NERtcCallback &callback=NERtcCallback())=0
尝试关闭成员音频,会进行权限校验
virtual int enableMediaPub(NEMediaPubType mediaType, bool enable)=0
开启或关闭本地媒体流(主流)的发送。 该方法用于开始或停止向网络发送本地音频或视频数据。 该方法不影响接收或播放远端媒体流,也不会影响本地音频或视频的采集状态。
virtual void stopShare(const NERtcCallback &callback=NERtcCallback())=0
停止本地共享
virtual void unmuteMyAudio(bool enableMediaPub=false, const NERtcCallback &callback=NERtcCallback())=0
关闭本地静音,并根据 enableMediaPub 参数决定是否开启本地上行音频流
virtual int stopAudioMixing()=0
停止播放音乐文件及混音。
virtual int disableEarBack()=0
关闭耳返功能。
virtual int enableEarBack(int volume)=0
开启耳返功能。
NECallback< NERoomTakeSnapshotInfo > NERoomTakeSnapshotCallback
截图结果回调
virtual int setExcludeWindowList(const std::list< void * > &excludedWindowList)=0
设置共享时排除的窗口列表
virtual void unmuteMemberVideo(const std::string &userUuid, const NERtcCallback &callback=NERtcCallback())=0
尝试打开成员视频,会进行权限校验
virtual int pauseEffect(uint32_t effectId)=0
暂停音效文件播放。
virtual int enableLocalVideo(bool enable)=0
brief 开启/关闭本地视频设备
virtual int pauseLocalAudioRecording()=0
暂停本地麦克风采集,调用后远端用户听不到本端声音
virtual int setAudioMixingSendVolume(int volume)=0
调节伴奏发送音量。
virtual int resumeLocalAudioRecording()=0
恢复本地麦克风采集,调用后远端用户可以听到本端声音
virtual void joinRtcChannel(const NERtcCallback &callback=NERtcCallback())=0
加入rtc主频道
virtual int enableLocalAudio(const std::string &channelName, bool enable)=0
virtual int stopEffect(uint32_t effectId)=0
停止播放指定音效文件。
virtual int subscribeRemoteVideoSubStream(const std::string &userUuid)=0
订阅用户视频辅流
virtual int resumeLocalVideoCapture()=0
恢复本地视频采集
virtual int resumeAudioMixing()=0
恢复播放音乐文件及混音。
virtual int setCaptionTranslationLanguage(NERoomCaptionTranslationLanguage language)=0
设置字幕 设置字幕翻译语言。默认为 [NERoomCaptionTranslationLanguage.NONE],即不翻译。
virtual void muteMyAudio(const NERtcCallback &callback=NERtcCallback())=0
开启本地静音,并关闭本地上行音频流
virtual int adjustChannelPlaybackSignalVolume(int volume)=0
调节对应房间本地播放的所有远端用户的信号音量。通过此接口可以实现调节所有远端用户在本地播放的混音音量。
virtual int pauseAllEffects()=0
暂停所有音效文件播放。
#define ROOMKIT_DEPRECATED(message)
struct tagNERectangle { tagNERectangle() :x(0), y(0), width(0), height(0) {} int x; int y; int width; int height; } NERectangle
共享区域,待共享区域相对于整个屏幕或窗口的位置
struct tagNERoomSize { int width{0}; int height{0};} NERoomSize
NERoom 通用大小数据结构
NEEncryptionType
RTC 流加密类型
struct tagNERoomScreenSharingOption { bool enableHighPerformance{true}; NERoomScreenSharingHighlight highlight; int limitFrameRate{30}; std::string videoProfile;} NERoomScreenSharingOption
屏幕共享选项
enum tagNERoomCaptionTranslationLanguage { kNone=0, kChinese, kEnglish, kJapanese } NERoomCaptionTranslationLanguage
字幕目标翻译语言枚举
enum tagNEMediaPubType { kNEMediaPubTypeAudio } NEMediaPubType
媒体 Pub 类型,目前仅支持音频
struct tagNERoomVideoView { bool setup=false; void *window=nullptr; NEVideoScalingMode scalingMode=kVideoScaleFit; NEVideoMirrorMode mirrorMode=kVideoMirrorModeDisabled; } NERoomVideoView
视频画布
struct tagNERoomCreateAudioEffectOption { std::string path; int loopCount=1; bool sendEnabled=true; uint32_t sendVolume=100; bool playbackEnabled=true; uint32_t playbackVolume=100;} NERoomCreateAudioEffectOption
std::function< void(int, const std::string &, const TResultParam &...)> NECallback
通用回调
struct tagNERoomCreateAudioMixingOption { std::string path; int loopCount=1; bool sendEnabled=true; uint32_t sendVolume=100; bool playbackEnabled=true; uint32_t playbackVolume=100; uint64_t startTimestamp=0; NERoomRtcAudioStreamType sendWithAudioType=kNERoomRtcAudioStreamTypeMain;} NERoomCreateAudioMixingOption
创建混音的配置项
enum tagNERoomRTCClientRole { kRoomRTCClientRoleBroadcaster, kRoomRTCClientRoleAudience } NERoomRTCClientRole
struct tagNERoomAudioFrame { NEAudioFormat format; void *data=nullptr; int64_t syncTimestamp=0; } NERoomAudioFrame
外部输入的音频帧
enum tagNERoomRtcTransportType { kNERoomRtcTransportTypeNoneProxy=0, kNERoomRtcTransportTypeUDPProxy=1, } NERoomRtcTransportType
云代理模式
struct tagNERoomScreenCaptureInfo { NERoomScreenCaptureSourceType type; NERoomSourceID sourceID; std::string title; std::string sourceName; std::string processPath; NERoomThumbImage thumbImage; NERoomThumbImage icon; bool primaryMonitor;} NERoomScreenCaptureInfo
被共享数据源信息
enum tagNEVideoStreamType { kStreamTypeHigh, kStreamLow } NEVideoStreamType
视频流类型
enum tagNERoomRtcVideoStreamType { kNEVideoStreamMain=0, kNEVideoStreamSub=1, kNEVideoStreamCount, } NERoomRtcVideoStreamType
视频流类型