实时音视频

  • 实时音视频 > 使用指南 > Linux >房间管理

    房间管理

    最近更新时间:2022-03-28 17:18:31

    房间表示一个多人的视频会话,本部分介绍如何进行房间管理,获取房间信息以及用户信息等常见功能。

    加入房间

    本地调用 QNRTCClient.Join(String token) 通过 roomToken 加入房间。

    virtual void Join(const std::string& token, const std::string& user_data = "") = 0;
    

    示例代码如下:

    client->Join(room_token);
    
    1. 请确保在 QNConnectionState.kDisconnected 状态下调用该接口加入房间,否则接口调用无效
    2. 加入房间时根据业务需求,每个用户可通过 user_data 携带自定义数据

    关于 roomToken 在服务端的生成可查阅 RoomToken 的签算

    本地加入房间成功后,会触发如下回调:

    本地用户收到的回调:

    当成功加入房间后,会通过 QNClientEventListener.OnConnectionStateChanged 接收到房间状态改变的通知

    class QNClientEventListener
    {
    public:
        // 当房间状态改变时会触发此回调,成功加入房间后,回调状态为 QNConnectionState.kConnected
        virtual void OnConnectionStateChanged(QNConnectionState state, const QNConnectionDisconnectedInfo& info) = 0;
    }
    

    远端用户收到的回调:

    class QNClientEventListener
    {
    public:
        // 当远端用户加入房间时会触发此回调
        virtual void OnUserJoined(const std::string& remote_user_id, const std::string& user_data) = 0;
    }
    

    离开房间

    本地调用 QNRTCClient.Leave() 退出房间。本地退出房间成功后,会触发如下回调:

    本地用户收到的回调:

    class QNClientEventListener
    {
    public:
        // 当房间状态改变时会触发此回调,成功离开房间后,回调状态为 QNConnectionState.kDisconnected,QNConnectionDisconnectedInfo 回调 Reason 为 kLeave
        void OnConnectionStateChanged(QNConnectionState state, const QNConnectionDisconnectedInfo& info) = 0;
    }
    

    远端用户收到的回调:

    class QNClientEventListener
    {
    public:
        // 当远端用户离开房间时会触发此回调
        virtual void OnUserLeft(const std::string& remote_user_id) = 0;
    }
    

    房间信息

    获取房间内远端用户信息

    本地可调用 QNRTCClient.GetRemoteUsers(const std::string& userId) 接口获取音视频通话房间中的指定用户。

    virtual QNRemoteUser& GetRemoteUsers(const std::string& userId) = 0;out/
    

    本地可调用 QNRTCClient.GetRemoteUsers() 接口获取音视频通话房间中的远端用户列表。

    virtual RemoteUserList& GetRemoteUsers() = 0;
    

    其中,QNRemoteUser 代表远端用户的信息,通过该对象可以获取指定 user 发布的音视频列表以及本地对其的订阅情况。

    以上内容是否对您有帮助?
  • Qvm free helper
    Close