实时音视频

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

    QNRTCClient

    最近更新时间:2021-12-21 17:00:35

    RTC 核心类,包含加入房间,离开房间,订阅、发布 Track,获取统计信息等功能
    Index
    Core Properties
    Core Methods
    Core Properties
    delegate
    • @property (nonatomic, weak) id<QNRTCClientDelegate> delegate;
    • RTC Client 的状态回调代理

    roomState
    • @property (nonatomic, assign, readonly) QNConnectionState roomState;
    • RTC client 的房间状态

    autoSubscribe
    • @property (nonatomic, assign) BOOL autoSubscribe;
    • 是否自动订阅远端的流,默认为 YES

    remoteUserList
    • @property (nonatomic, strong, readonly) NSArray<QNRemoteUser *> *remoteUserList;
    • 远端用户列表

    publishedTracks
    • @property (nonatomic, strong, readonly) NSArray<QNTrack *> *publishedTracks;
    • 已发布 Track 列表

    Core Methods
    setClientRole
    • - (void)setClientRole:(QNClientRole)role completeCallback:(nullable QNClientRoleResultCallback)callback;
    • 设置用户角色

      该方法在加入频道前后均可调用,该方法仅适用于直播场景。

      Parameters
    join[1/2]
    • - (void)join:(NSString *)token;
    • 加入房间

      接口调用成功后,将会触发 QNRTCClientDelegate.onConnectionStateChanged 回调

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

      Parameters
      • token: NSString

        房间 Token

    join[2/2]
    • - (void)join:(NSString *)token userData:(NSString *)userData;
    • 加入房间

      接口调用成功后,将会触发 QNRTCClientDelegate.onConnectionStateChanged 回调

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

      Parameters
      • token: NSString

        房间 Token

      • userData: NSString

        用户信息

    leave
    publish[1/2]
    • -(void)publish:(NSArray<QNLocalTrack *> *)tracks;
    • 发布本地 Track

      Parameters
    publish[2/2]
    unpublish
    • - (void)unpublish:(NSArray<QNTrack *> *)tracks;
    • 取消发布本地 Track

      Parameters
      • tracks: NSArray<QNLocalTrack>

        要取消发布的本地 Track

    subscribe
    unsubscribe
    • - (void)unsubscribe:(NSArray<QNTrack *> *)tracks;
    • 取消订阅远端 Track

      Parameters
      • tracks: NSArray<QNTrack>

        要取消订阅的远端 Track

    getSubscribedTracks
    • - (NSArray <QNTrack *> *)getSubscribedTracks:(NSString *)userID;
    • 获取指定用户已被自己订阅的 Tracks

      Parameters
      • userID: NSString

        用户 ID

    startLiveStreamingWithDirect
    startLiveStreamingWithTranscoding
    stopLiveStreamingWithDirect
    stopLiveStreamingWithTranscoding
    setTranscodingLiveStreamingID
    • - (void)setTranscodingLiveStreamingID:(NSString *)streamID withTracks:(NSArray <QNTranscodingLiveStreamingTrack *> *)tracks;
    • 新增、更新合流转推布局配置,更新成功会触发 QNRTCClientDelegate.didTranscodingTracksUpdated 回调

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

      Parameters
    removeTranscodingLiveStreamingID
    startRoomMediaRelay
    • - (void)startRoomMediaRelay:(QNRoomMediaRelayConfiguration *_Nonnull)config completeCallback:(nullable QNMediaRelayResultCallback)callback;
    • 开启跨房媒体转发

      如果已经开启,则调用失败;当所有目标房间跨房媒体转发都失败,则本次跨房媒体转发请求视为失败,使用跨房媒体转发功能需要再次调用此 API;当有任意一个目标或多个目标房间媒体转发成功,则本次跨房媒体转发请求视为成功,具体每个房间的状态参考回调结果。

      该方法仅适用直播类型房间中角色类型为主播的用户

      Parameters
    updateRoomMediaRelay
    • - (void)updateRoomMediaRelay:(QNRoomMediaRelayConfiguration *_Nonnull)config completeCallback:(nullable QNMediaRelayResultCallback)callback;
    • 更新跨房媒体转发

      成功开启跨房媒体转发后,如果你希望将流转发到多个目标房间,或退出当前正在转发的房间,可以调用该方法。此 API 为全量更新,正在跨房媒体转发中却未被包含在参数 configuration 中的房间,将停止媒体转发。

      调用此 API 前必须确保已经成功开启跨房媒体转发,否则将调用失败;该方法仅适用直播类型房间中角色类型为主播的用户。

      Parameters
    stopRoomMediaRelay
    • - (void)stopRoomMediaRelay:(nullable QNMediaRelayResultCallback)callback;
    • 停止跨房媒体转发

      如果未开启,则调用失败。

      一旦停止,会停止在所有目标房间中的媒体转发;该方法仅适用直播类型房间中角色类型为主播的用户。

    sendMessage
    • - (void)sendMessage:(NSString *)messsage toUsers:(nullable NSArray<NSString *> *)users messageId:(nullable NSString *)messageId;
    • 发送自定义消息到指定用户群,发送成功后,会触发远端用户的 QNRTCClientDelegate.didReceiveMessage 回调接口

      Parameters
      • message: NSString

        自定义消息 内容

      • users: NSArray<NSString>

        用户 ID 列表

      • messageId: NSString

        自定义消息 ID

    getRemoteUser
    • - (QNRemoteUser *)getRemoteUser:(NSString *)userID;
    • 获取对应 ID 的远端用户

      Parameters
      • userID: NSString

        远端用户 ID

      Returns QNRemoteUser
    getUserNetworkQuality
    getRemoteVideoTrackStats
    • - (NSDictionary *)getRemoteVideoTrackStats;
    • 获取已订阅的远端视频轨道统计信息

      Returns NSDictionary<NSString, QNRemoteVideoTrackStats>
    getRemoteAudioTrackStats
    • - (NSDictionary *)getRemoteAudioTrackStats;
    • 获取已订阅的远端音频轨道统计信息

      Returns NSDictionary<NSString, QNRemoteAudioTrackStats>
    getLocalVideoTrackStats
    • - (NSDictionary *)getLocalVideoTrackStats;
    • 获取已发布的近端视频轨道统计信息

      Returns NSDictionary<NSString, <QNLocalVideoTrackStats>>
    getLocalAudioTrackStats
    • - (NSDictionary *)getLocalAudioTrackStats;
    • 获取已发布的近端音频轨道统计信息

      Returns NSDictionary<NSString, QNLocalAudioTrackStats>
    以上内容是否对您有帮助?
  • Qvm free helper
    Close