实时音视频

  • 实时音视频 > API 文档 > Windows >QNRTCClient

    QNRTCClient

    最近更新时间:2021-09-27 10:36:08

    RTC 核心类,包含加入房间,离开房间,订阅、发布 Track,获取统计信息等功能
    Index
    Core Methods
    Core Methods
    SetQNClientEventListener
    • virtual void SetQNClientEventListener(QNClientEventListener* listener) = 0
    • 设置连接事件监听接口

      Parameters
    Loop
    • virtual void Loop() = 0
    • 消息循环驱动,必须由开发者在上层循环调用

      建议由开发者在上层主线程定时每 10ms 调用一次以触发所有事件

    GetCameraCount
    • virtual int GetCameraCount() = 0
    • 获取系统中的摄像头数量

      Returns 摄像头数量
    GetCameraInfo
    • virtual const QNCameraDeviceInfo& GetCameraInfo(unsigned int index) = 0
    • 获取指定 index 的摄像头信息

      Parameters
      Returns 摄像头设备信息
    GetScreenWindowCount
    • virtual int GetScreenWindowCount() = 0
    • 获取可进行画面采集的屏幕、窗口数量

      Returns 可以进行采集的屏幕、窗口数量
    GetScreenWindowInfo
    • virtual const QNScreenWindowInfo& GetScreenWindowInfo(unsigned int index) = 0
    • 获取指定 index 的屏幕窗口信息,根据此信息可以进行对应的画面采集

      Parameters
      Returns 屏幕窗口信息
    GetAudioDeviceCount
    • virtual int GetAudioDeviceCount(QNAudioDeviceInfo::QNAudioDeviceType deviceType) = 0
    • 用于获取指定类型的音频设备数量,adt_record or adt_playout

      Parameters
      Returns 指定类型的设备数量
    GetAudioDeviceInfo
    • virtual void GetAudioDeviceInfo(QNAudioDeviceInfo::QNAudioDeviceType deviceType, unsigned int index, QNAudioDeviceInfo& audioInfo) = 0
    • 获取指定 index 的音频设备信息

      Parameters
    SetRecordingDevice
    • virtual int SetRecordingDevice(QNAudioDeviceSetting& recordingDeviceSetting) = 0
    • 设置连麦使用的音频录制设备,不调用则使用系统默认录制设备

      连麦过程中设置无效,需在发布音频 Track 前调用

      Parameters
      Returns 成功返回 0,其它请参考错误码列表
    SetPlayoutDevice
    • virtual int SetPlayoutDevice(QNAudioDeviceSetting& playoutDeviceSetting) = 0
    • 设置连麦使用的音频播放设备,不调用则使用系统默认录制设备

      连麦过程中设置无效,需在发布音频 Track 前调用

      Parameters
      Returns 成功返回 0,其它请参考错误码列表
    PreviewCamera
    • virtual int PreviewCamera(QNCameraPreviewSetting& cameraSetting) = 0
    • 预览摄像头,摄像头不能重复打开

      Parameters
      Returns 成功返回 0,其它请参考错误码列表
    UnPreviewCamera
    • virtual int UnPreviewCamera(std::string& cameraId) = 0
    • 取消预览摄像头

      Parameters
      • cameraId: string

        指定摄像头 id

      Returns 成功返回 0,其它请参考错误码列表
    PreviewScreen
    • virtual int PreviewScreen(QNScreenPreviewSetting& screenSetting) = 0
    • 预览指定的屏幕(显示器)或者窗口

      Parameters
      Returns 成功返回 0,其它请参考错误码列表
    UnPreviewScreen
    • virtual int UnPreviewScreen(unsigned int screenId) = 0
    • 取消预指定的屏幕、窗口

      Parameters
      • screenId: unsigned int

        指定屏幕、窗口的 id

      Returns 成功返回 0,其它请参考错误码列表
    GetSupportEncoder
    • virtual const QNEncoderCapability& GetSupportEncoder() = 0
    • 获取当前支持的编码器

      Returns 当前支持的编码器能力集
    SetVideoEncoder
    • virtual void SetVideoEncoder(QNVideoEncodeType encodeType) = 0
    • 配置 SDK 是使用的视频编解码器类型,需在 Join 前调用,不设置的话默认使用 Open264 编码器

      注意: 不支持运行过程动态修改编码器类型,硬件编码和多流功能同时开启的话,多流功能会失效

      Parameters
    SetDnsServerUrl
    • virtual void SetDnsServerUrl(const std::string& url) = 0
    • 设置 dns 域名解析服务器地址 需要在 Join 之前调用

      Parameters
      • url: string

        dns 服务器地址

    SetIcePolicy
    • virtual void SetIcePolicy(QNIcePolicy policy) = 0
    • 配置媒体传输通道底层传输协议,默认为 preferUdp,当用户网络下 UDP 不通时,SDK 自动降级使用 TCP

      Parameters
    SetAutoSubscribe
    • void SetAutoSubscribe(bool autoSubscribe)
    • 设置是否启用自动订阅

      当开启此选项后,房间内有任意用户新发布 Track 的时候,会自动订阅此路 Track,订阅成功后,会触发 QNClientEventListener.OnSubscribed 回调

      Parameters
      • autoSubscribe: bool

        是否自动订阅

    Join
    • void Join(string token, string userData) = 0
    • 加入房间

      接口调用成功后,将会触发 QNClientEventListener.OnConnectionStateChanged 回调

      请确保在 QNConnectionState.DISCONNECTED 状态下调用该接口加入房间,否则接口调用无效

      Parameters
      • token: string

        房间 Token

      • userData: string

        用户信息

    Leave
    • void Leave() = 0
    • 离开房间

      成功离开房间后,会触发 QNClientEventListener.OnConnectionStateChanged 回调

    IsJoined
    • virtual bool IsJoined() = 0
    • 判断是否成功加入了房间

      Returns true 为已加入,false 为未加入
    SetQNPublishResultCallback
    • virtual void SetQNPublishResultCallback(QNPublishResultCallback* listener) = 0
    • 设置 publish 监听接口

      Parameters
    Publish
    • void Publish(LocalTrackList& trackList) = 0
    • 发布本地 Track 列表,结果通过 QNPublishResultCallback 接口通知

      Parameters
      • trackList: std::list<QNLocalTrack*>

        要发布的本地 Track 列表

    UnPublish
    • void UnPublish(LocalTrackList& trackList) = 0
    • 取消发布本地 Track 列表

      Parameters
      • trackList: std::list<QNLocalTrack*>

        要取消发布的本地 Track 列表

    Subscribe
    • virtual void Subscribe(const RemoteTrackList& trackList) = 0
    • 订阅远端 Track 列表,订阅成功后,会触发 QNClientEventListener.OnSubscribed 回调

      Parameters
      • trackList: std::list<shared_ptr<QNRemoteTrack>>

        要订阅的远端 Track 列表

    UnSubscribe
    • virtual void UnSubscribe(const RemoteTrackList& trackList) = 0
    • 取消订阅远端 Track 列表

      Parameters
      • trackList: std::list<shared_ptr<QNRemoteTrack>>

        要取消订阅的远端 Track 列表

    SendCustomMessage
    • virtual void SendCustomMessage(const std::list<std::string>& usersList, const std::string& messageId, const std::string& message) = 0
    • 发送自定义消息到指定用户群,发送成功后,会触发远端用户的 QNClientEventListener.OnMessageReceived 回调接口

      Parameters
      • usersList: std::list<std::string>

        用户 ID 列表

      • messageId: string

        自定义消息 ID

      • message: string

        自定义消息内容

    SetLiveStreamingListener
    • virtual void SetLiveStreamingListener(QNLiveStreamingListener* listener) = 0
    • 设置 CDN 转推监听接口

      Parameters
    StartLiveStreaming[1/2]
    • virtual void StartLiveStreaming(QNDirectLiveStreamingConfig& config) = 0
    • 开始单路 CDN 转推

      Parameters
    StartLiveStreaming[2/2]
    • virtual void StartLiveStreaming(QNTranscodingLiveStreamingConfig& config) = 0;
    • 开始合流转码 CDN 转推

      Parameters
    StopLiveStreaming[1/2]
    • virtual void StopLiveStreaming(QNDirectLiveStreamingConfig& config) = 0
    • 停止单路 CDN 转推

      Parameters
    StopLiveStreaming[2/2]
    • virtual void StopLiveStreaming(QNTranscodingLiveStreamingConfig& config) = 0
    • 停止合流转码 CDN 转推

      Parameters
    SetTranscodingLiveStreamingTracks
    • virtual void SetTranscodingLiveStreamingTracks(std::string& streamID, QNTranscodeingTrackList& transcodingTracks) = 0
    • 新增、更新合流转推布局配置

      新增 track 布局以及对已有的 track 的合流布局进行更新均可通过该接口实现,只需修改 transcodingTracks 对应的 track 内容即可。

      Parameters
    RemoveTranscodingLiveStreamingTracks
    • virtual void RemoveTranscodingLiveStreamingTracks(std::string& streamID, QNTranscodeingTrackList& transcodingTracks) = 0
    • 移除合流转推布局配置

      Parameters
    SetRemoteTracksMixedAudioListener
    • virtual void SetRemoteTracksMixedAudioListener(QNRemoteAudioMixedFrameListener* listener) = 0
    • 设置监听远端所有音频 Track 混合后的音频数据

      Parameters
    GetPublishedTracks
    • virtual LocalTrackList& GetPublishedTracks() = 0
    • 获取所有已经发布的本地 Track

      Returns std::list<QNLocalTrack*>
    GetRemoteUsers[1/2]
    • virtual QNRemoteUser& GetRemoteUsers(const std::string& userId) = 0
    • 获取对应 ID 的远端用户

      Parameters
      • userID: string

        远端用户 ID

      Returns QNRemoteUser
    GetRemoteUsers[2/2]
    • virtual RemoteUserList& GetRemoteUsers() = 0
    • 获取房间内所有的远端用户

      Returns std::list<QNRemoteUser>
    GetRemoteVideoTrackStats
    • virtual QNRemoteVideoStatsList& GetRemoteVideoTrackStats() = 0
    • 获取已订阅的远端视频轨道统计信息

      Returns std::list<QNRemoteVideoTrackStats>
    GetRemoteAudioTrackStats
    • virtual QNRemoteAudioTrackStats& GetRemoteAudioTrackStats() = 0
    • 获取已订阅的远端音频轨道统计信息

    GetLocalVideoTrackStats
    • virtual QNLocalVideoStatsList& GetLocalVideoTrackStats() = 0
    • 获取已发布的近端视频轨道统计信息

      Returns std::list<QNLocalVideoTrackStats>
    GetLocalAudioTrackStats
    • virtual QNLocalAudioTrackStats& GetLocalAudioTrackStats() = 0
    • 获取已发布的近端音频轨道统计信息

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