实时音视频云

  • QNRTCSessionDelegate

    最近更新时间:2018-06-07 17:03:34

    QNRTCSessionDelegate 提供连麦相关的所有回调,包括但不限于远端连麦者加入(离开)房间、发布(取消发布)音视频以及连麦状态等回调

    roomStateDidChange:

    定义

    - (void)RTCSession:(QNRTCSession *)session roomStateDidChange:(QNRoomState)roomState;
    

    说明

    房间状态变化的回调

    参数

    参数名 描述
    session QNRTCSession
    roomState 房间状态

    房间状态参考roomState属性

    @property (nonatomic, assign, readonly) QNRoomState roomState;
    

    QNRoomState 状态说明如下:

    状态 说明
    QNRoomStateIdle 空闲状态、初始状态或者退出房间后
    QNRoomStateConnecting 正在加入房间的状态
    QNRoomStateConnected 已加入房间的状态
    QNRoomStateReconnecting 正在重连的状态

    sessionDidPublishLocalMedia:

    定义

    - (void)sessionDidPublishLocalMedia:(QNRTCSession *)session;
    

    说明

    发布本地音视频回调

    参数

    参数名 描述
    session QNRTCSession 的实例

    didJoinOfRemoteUserId:

    定义

    - (void)RTCSession:(QNRTCSession *)session didJoinOfRemoteUserId:(NSString *)userId;
    

    说明

    远端用户加入房间的回调

    参数

    参数名 描述
    session QNRTCSession 的实例
    userId 远端用户 Id

    didLeaveOfRemoteUserId:

    定义

    - (void)RTCSession:(QNRTCSession *)session didLeaveOfRemoteUserId:(NSString *)userId;
    

    说明

    远端用户离开房间的回调

    参数

    参数名 描述
    session QNRTCSession 的实例
    userId 远端用户 Id

    didPublishOfRemoteUserId:

    定义

    - (void)RTCSession:(QNRTCSession *)session didPublishOfRemoteUserId:(NSString *)userId;
    

    说明

    远端用户发布音视频的回调

    参数

    参数名 描述
    session QNRTCSession 的实例
    userId 远端用户 Id

    didUnpublishOfRemoteUserId:

    定义

    - (void)RTCSession:(QNRTCSession *)session didUnpublishOfRemoteUserId:(NSString *)userId;
    

    说明

    远端用户取消发布音视频的回调

    参数

    参数名 描述
    session QNRTCSession 的实例
    userId 远端用户 Id

    didSubscribeUserId:

    定义

    - (void)RTCSession:(QNRTCSession *)session didSubscribeUserId:(NSString *)userId;
    

    说明

    订阅远端用户的回调

    参数

    参数名 描述
    session QNRTCSession 的实例
    userId 远端用户 Id

    didAudioMuted:byRemoteUserId:

    定义

    - (void)RTCSession:(QNRTCSession *)session didAudioMuted:(BOOL)muted byRemoteUserId:(NSString *)userId;
    

    说明

    远端用户音频状态变更为 muted 的回调,可实时更新远端用户的音视频状态

    参数

    参数名 描述
    session QNRTCSession 的实例
    muted 音频静音
    userId 远端用户 Id

    didVideoMuted:byRemoteUserId:

    定义

    - (void)RTCSession:(QNRTCSession *)session didVideoMuted:(BOOL)muted byRemoteUserId:(NSString *)userId;
    

    说明

    远端用户视频状态变更为 muted 的回调,可实时更新远端用户的音视频状态

    参数

    参数名 描述
    session QNRTCSession 的实例
    muted 视频关闭
    userId 远端用户 Id

    didVideoMuted:byRemoteUserId:

    定义

    - (void)RTCSession:(QNRTCSession *)session didKickoutByUserId:(NSString *)userId;
    

    说明

    本人被 userId 踢出房间的回调

    参数

    参数名 描述
    session QNRTCSession 的实例
    userId 远端用户 Id

    didFailWithError:

    定义

    - (void)RTCSession:(QNRTCSession *)session didFailWithError:(NSError *)error;
    

    说明

    SDK 运行过程中发生错误会通过该方法回调,具体错误码的含义可以见 QNTypeDefines.h 文件

    参数

    参数名 描述
    session QNRTCSession 的实例
    error 错误信息

    firstVideoDidDecodeOfRemoteUserId:

    定义

    - (QNVideoRender *)RTCSession:(QNRTCSession *)session firstVideoDidDecodeOfRemoteUserId:(NSString *)userId;
    

    说明

    远端用户视频首帧解码后的回调

    参数

    参数名 描述
    session QNRTCSession 的实例
    userId 远端用户 Id

    注意:如果需要渲染,则需要返回一个带 renderView 的 QNVideoRender 对象,这里的 renderView 是 QNVideoView。

    didDetachRenderView:ofRemoteUserId:

    定义

    - (void)RTCSession:(QNRTCSession *)session didDetachRenderView:(UIView *)renderView ofRemoteUserId:(NSString *)userId;
    

    说明

    远端用户取消渲染到 renderView 上的回调

    参数

    参数名 描述
    session QNRTCSession 的实例
    userId 远端用户 Id

    cameraSourceDidGetSampleBuffer:

    定义

    - (void)RTCSession:(QNRTCSession *)session cameraSourceDidGetSampleBuffer:(CMSampleBufferRef)sampleBuffer;
    

    说明

    获取到摄像头原数据时的回调,便于开发者做滤镜等处理

    参数

    参数名 描述
    session QNRTCSession 的实例
    sampleBuffer 摄像头原数据

    注意:这个回调在 camera 数据的输出线程,请不要做过于耗时的操作,否则可能会导致编码帧率下降

    microphoneSourceDidGetAudioBuffer:

    定义

    - (void)RTCSession:(QNRTCSession *)session microphoneSourceDidGetAudioBuffer:(AudioBuffer *)audioBuffer;
    

    说明

    获取到本地麦克风原始数据时的回调

    参数

    参数名 描述
    session QNRTCSession 的实例
    audioBuffer 本地麦克风的原始数据

    注意:这个回调在 AU Remote IO 线程,请不要做过于耗时的操作,否则可能阻塞该线程影响音频输出或其他未知问题

    didGetPixelBuffer:ofRemoteUserId:

    定义

    - (void)RTCSession:(QNRTCSession *)session didGetPixelBuffer:(CVPixelBufferRef)pixelBuffer ofRemoteUserId:(NSString *)userId;
    

    说明

    获取到远端用户视频数据时的回调

    参数

    参数名 描述
    session QNRTCSession 的实例
    pixelBuffer 远端用户的视频数据
    userId 远端用户 Id

    注意:回调远端用户视频数据会带来一定的性能消耗,如果没有相关需求,请不要实现该回调

    didGetAudioBuffer:bitsPerSample:sampleRate:ofRemoteUserId:

    定义

    - (void)RTCSession:(QNRTCSession *)session
     didGetAudioBuffer:(AudioBuffer *)audioBuffer
         bitsPerSample:(NSUInteger)bitsPerSample
            sampleRate:(NSUInteger)sampleRate
        ofRemoteUserId:(NSString *)userId;
    

    说明

    获取到远端用户音频数据时的回调

    参数

    参数名 描述
    session QNRTCSession 的实例
    audioBuffer 远端用户的音频数据(PCM 格式)
    bitsPerSample PCM 数据的位宽
    sampleRate 音频数据的采样率
    userId 远端用户 Id

    注意:回调远端用户音频数据会带来一定的性能消耗,如果没有相关需求,请不要实现该回调

    didGetStatistic:ofUserId:

    定义

    - (void)RTCSession:(QNRTCSession *)session didGetStatistic:(NSDictionary *)statistic ofUserId:(NSString *)userId;
    

    说明

    统计信息的回调

    参数

    参数名 描述
    session QNRTCSession 的实例
    statistic 统计信息
    userId 远端用户的 Id

    统计信息回调的时间间隔

    @property (nonatomic, assign) NSUInteger statisticInterval;
    

    注意:统计信息的回调,由 statisticInterval 参数决定, statisticInterval 默认为 0,即不回调统计信息**注意:这个回调在 camera 数据的输出线程,请不要做过于耗时的操作,否则可能会导致推流帧率下降**

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