监听房间事件

更新时间: 2023/04/14 07:22:31

加入房间后,请增加 NERoom 房间的监听事件,便于及时获取相应的回调信息。

注意事项

需要在加入房间后进行事件监听。

事件列表

分类 事件 描述
房间管理 onRoomEnded 房间结束的回调
onRoomPropertiesChanged 房间属性更新事件回调
onRoomPropertiesDeleted 房间属性删除事件回调
onRoomLockStateChanged 房间锁定状态变更事件回调
成员管理 onMemberJoinRoom 成员进入房间的回调
onMemberLeaveRoom 成员离开房间的回调
onMemberJoinChatroom 成员加入聊天室的回调
onMemberLeaveChatroom 成员离开聊天室的回调
onMemberNameChanged 成员昵称变更事件回调
onMemberPropertiesChanged 成员属性更新事件回调
onMemberPropertiesDeleted 成员属性删除事件回调
音视频通话 onMemberJoinRtcChannel 成员加入 RTC 频道的回调
onMemberLeaveRtcChannel 成员离开 RTC 频道的回调
onRtcChannelError RTC 频道错误的回调
onMemberRoleChanged 成员角色变更的回调
onMemberScreenShareStateChanged 成员屏幕共享状态的回调
onMemberAudioMuteChanged 成员音频状态的回调
onMemberVideoMuteChanged 成员视频状态的回调
onRtcRemoteAudioVolumeIndication RTC 成员音量大小事件回调
互动白板 onMemberWhiteboardStateChanged 白板共享状态的回调
即时消息 onReceiveChatroomMessages 聊天室消息的回调
直播 onRoomLiveStateChanged 直播状态变更事件回调

配置步骤

  1. 调用 getRoomContext 接口获取房间上下文。

    调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。

  2. 调用 addRoomListener 接口监听房间里的事件。

示例代码

class NERoomListener : public INERoomListener {
public:
    NERoomListener();
    ~NERoomListener();

    virtual void onMemberRoleChanged(const std::string& userUuid, const std::string& beforeRole, const std::string& afterRole) override;
    virtual void onMemberJoinRoom(const std::vector<SharedMemberPtr>& members) override;
    virtual void onMemberLeaveRoom(const std::vector<SharedMemberPtr>& members) override;
    virtual void onRoomEnded(NERoomEndReason reason) override;
    virtual void onMemberJoinRtcChannel(const std::vector<SharedMemberPtr>& members) override;
    virtual void onMemberLeaveRtcChannel(const std::vector<SharedMemberPtr>& members) override;
    virtual void onMemberJoinChatroom(const std::vector<SharedMemberPtr>& members) override;
    virtual void onMemberLeaveChatroom(const std::vector<SharedMemberPtr>& members) override;
    virtual void onMemberAudioMuteChanged(const SharedMemberPtr& member, bool mute, const SharedMemberPtr& trigger) override;
    virtual void onMemberVideoMuteChanged(const SharedMemberPtr& member, bool mute, const SharedMemberPtr& trigger) override;
    virtual void onMemberScreenShareStateChanged(const SharedMemberPtr& member, bool isSharing, const SharedMemberPtr& trigger) override;
    virtual void onMemberWhiteboardStateChanged(const SharedMemberPtr& member, bool isSharing, const SharedMemberPtr& trigger) override;
    virtual void onReceiveChatroomMessages(const std::list<NERoomMessage>& messages) override;
    virtual void onRtcChannelError(int code, const std::string& msg) override;
    virtual void onMemberPropertiesChanged(const std::string& userUuid, const std::map<std::string, std::string>& properties) override;
    virtual void onRoomPropertiesChanged(const std::map<std::string, std::string>& properties) override;
    virtual void onVideoFrameData(const std::string& userUuid,
                                  bool bSubVideo,
                                  void* data,
                                  uint32_t type,
                                  uint32_t width,
                                  uint32_t height,
                                  uint32_t count,
                                  uint32_t offset[4],
                                  uint32_t stride[4],
                                  uint32_t rotation) override;
    virtual void onRoomLiveStateChanged(NERoomLiveState state) override;
    virtual void onMemberNameChanged(const SharedMemberPtr& member, const std::string& name) override;
    virtual void onRoomLockStateChanged(bool locked) override;
    virtual void onRtcVirtualBackgroundSourceEnabled(bool enabled, NERoomVirtualBackgroundSourceStateReason reason) override;

    virtual void onRtcAudioStats(const std::vector<NEAudioStats>& stats) override;
    virtual void onRtcVideoStats(const std::vector<NEVideoStats>& stats) override;
    virtual void onRtcNetworkQuality(const std::vector<NENetWorkQualityStats>& quality) override;
    virtual void onRtcUserVideoStart(const std::string& userUuid) override;
    virtual void onRtcUserVideoStop(const std::string& userUuid) override;

    virtual void onCameraDeviceChanged(const std::string& deviceId, bool bAdd) override;
    virtual void onPlayoutDeviceChanged(const std::string& deviceId, bool bAdd) override;
    virtual void onRecordDeviceChanged(const std::string& deviceId, bool bAdd) override;
    virtual void onDefaultPlayoutDeviceChanged(const std::string& deviceId) override;
    virtual void onDefaultRecordDeviceChanged(const std::string& deviceId) override;
    virtual void onRoomConnectStateChanged(NEConnectState state) override;

    virtual void onLocalAudioVolumeIndication(int volume) override;
    virtual void onRtcRemoteAudioVolumeIndication(std::list<NEMemberVolumeInfo> volumeList, int totalVolume) override;
    virtual void onRtcDisconnect() override;
    virtual void onMemberPropertiesDeleted(const std::string& userUuid, const std::map<std::string, std::string>& properties) override;
    virtual void onRoomPropertiesDeleted(const std::map<std::string, std::string>& properties) override;
};

auto listener = new NERoomListener();
auto context = m_pRoomKit->getRoomService()->getRoomContext(roomUuid);
context->addRoomListener(listener);

此文档是否对你有帮助?
有帮助
去反馈
  • 注意事项
  • 事件列表
  • 配置步骤
  • 示例代码