PLVLinkMicManagerDelegate

Objective-C

@protocol PLVLinkMicManagerDelegate <NSObject>

@optional

#pragma mark 本地用户(自己)事件回调
/// 本地用户 加入RTC频道成功回调
///
/// @param manager 连麦管理器
/// @param channelID 加入频道ID
/// @param uid 当前加入RTC用户的RTCId
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager joinRTCChannelComplete:(NSString * _Nonnull)channelID uid:(NSString *)uid;

/// 本地用户 加入RTC频道失败回调
///
/// @note 目前只对 UCloud 生效
///
/// @param manager 连麦管理器
/// @param channelID 加入频道ID
/// @param uid 当前加入RTC用户的RTCId
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager joinRTCChannelFailure:(NSString * _Nonnull)channelID uid:(NSString *)uid;

/// 本地用户 退出RTC频道回调
///
/// @param manager 连麦管理器
/// @param channelID 退出频道ID
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager leaveRTCChannelComplete:(NSString * _Nonnull)channelID;

/// 本地用户 连麦错误发生回调
///
/// @note 若自动退出RTC频道,则会触发 [leaveRTCChannelComplete:] 回调
///
/// @param manager 连麦管理器
/// @param errorCode 错误码
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager didOccurError:(NSInteger)errorCode;

/// 本地用户 ’网络状态‘ 发生变化
///
/// @param manager 连麦管理器
/// @param networkQuality 当前 ‘网络状态’ 状态值
- (void)plvLinkMicManager:(PLVLinkMicManager *)manager networkQualityDidChanged:(PLVBLinkMicNetworkQuality)networkQuality;

/// 本地用户 ’连麦状态‘ 发生变化
///
/// @param manager 连麦管理器
/// @param connectionState 当前 ‘连麦状态’ 状态值
- (void)plvLinkMicManager:(PLVLinkMicManager *)manager rtcConnectionStateDidChanged:(PLVBLinkMicConnectionStateType)connectionState;

/// 当前 ’单次重连时长‘ 定时回调
///
/// @note 仅在属性 [hadJoinedRTC] 为 YES 时,每1秒回调通知一次最新值;
///       在即将 清零重置 前,会回调一次 最终的数值,无论此刻是否已间隔足够1秒;
///       在 清零重置 后,也将回调一次;
/// @param manager 连麦管理器
/// @param reconnectingThisTimeDuration 单次重连时长 (单位秒,带小数,可精确至毫秒)
- (void)plvLinkMicManager:(PLVLinkMicManager *)manager currentReconnectingThisTimeDuration:(NSInteger)reconnectingThisTimeDuration;

#pragma mark 远端用户(别人)事件回调
/// 远端用户 加入RTC频道回调
///
/// @param manager 连麦管理器
/// @param uid 远端用户id
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager didJoinedOfUid:(NSString *)uid;

/// 远端用户 退出RTC频道回调
///
/// @param manager 连麦管理器
/// @param uid 远端用户id
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager didOfflineOfUid:(NSString *)uid;

/// 远端用户 音频流禁止状态更新回调
///
/// @param manager 连麦管理器
/// @param muted 音频流是否禁止
/// @param uid 禁止状态更新的用户连麦ID
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager didAudioMuted:(BOOL)muted byUid:(NSString *)uid;

/// 远端用户 视频流禁止状态更新回调
///
/// @param manager 连麦管理器
/// @param muted 视频流是否禁止
/// @param uid 禁止状态更新的用户连麦ID
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager didVideoMuted:(BOOL)muted byUid:(NSString *)uid;

/// 远端用户 音频流 ‘mute状态’ 更新回调
///
/// @param manager 连麦管理器
/// @param muted 音频流是否mute
/// @param streamSourceType 流的源类型
/// @param uid mute状态更新对应的用户连麦ID
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager didAudioMuted:(BOOL)muted streamSourceType:(PLVBRTCSubscribeStreamSourceType)streamSourceType byUid:(NSString *)uid;

/// 远端用户 视频流 ‘mute状态’ 更新回调
///
/// @param manager 连麦管理器
/// @param muted 视频流是否mute
/// @param streamSourceType 流的源类型
/// @param uid mute状态更新的用户连麦ID
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager didVideoMuted:(BOOL)muted streamSourceType:(PLVBRTCSubscribeStreamSourceType)streamSourceType byUid:(NSString *)uid;

/// 远端用户 可订阅流加入
///
/// @note 目前只对 UCloud 生效
///
/// @param manager 连麦管理器
/// @param uid 远端用户连麦ID
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager didNewStreamJoinRoomOfUid:(NSString *)uid;

/// 远端用户 流加入房间 回调
///
/// @param manager 连麦管理器
/// @param streamSourceType 流的源类型
/// @param userRTCId 流所属的用户连麦ID
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager streamJoinRoom:(PLVBRTCSubscribeStreamSourceType)streamSourceType userRTCId:(NSString *)userRTCId;

/// 远端用户 流离开房间 回调
///
/// @note 已订阅过的流离开房间,才会触发此回调;未曾订阅过的流离开房间,不触发此回调;
///
/// @param manager 连麦管理器
/// @param streamSourceType 流的源类型
/// @param userRTCId 流所属的用户连麦ID
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager streamLeaveRoom:(PLVBRTCSubscribeStreamSourceType)streamSourceType userRTCId:(NSString *)userRTCId;

#pragma mark 通用(自己、别人) 事件回调
/// 远端用户 全部流已退出房间
///
/// @param manager 连麦管理器
/// @param uid 远端用户连麦ID
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager remoteUserTotalStreamsDidLeaveRoom:(NSString *)uid;

/// 全部连麦成员的音频音量 回调
///
/// @note 该回调的时间间隔约为 100ms~300ms
///
/// @param manager 连麦管理器
/// @param volumeDict 连麦成员音量字典 (key:用户连麦ID,value:对应的流的音量值;value取值范围为 0.0 ~ 1.0)
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager reportAudioVolumeOfSpeakers:(NSDictionary<NSString *, NSNumber *> * _Nonnull)volumeDict;

/// RTC频道内某位用户 ‘网络状态’ 发生改变回调
///
/// @param manager 连麦管理器
/// @param userRTCId 当前回调对应的用户RTCId
/// @param txQuality 该用户的上行网络状态
/// @param rxQuality 该用户的下行网络状态
- (void)plvLinkMicManager:(PLVLinkMicManager * _Nonnull)manager userNetworkQualityDidChanged:(NSString *)userRTCId txQuality:(PLVBLinkMicNetworkQuality)txQuality rxQuality:(PLVBLinkMicNetworkQuality)rxQuality;

/// 全部远端用户上行时延回调
///
/// @note 该回调的时间间隔约为 100ms~300ms
///
/// @param manager 连麦管理器
/// @param rttDict 上行时延字典(key:用户连麦ID,value:时延 单位毫秒)
- (void)plvLinkMicManager:(PLVLinkMicManager *)manager userRttDict:(NSDictionary <NSString *, NSNumber *> *)rttDict;

@end

Swift

protocol PLVLinkMicManagerDelegate : NSObjectProtocol

Undocumented

本地用户(自己)事件回调

  • 本地用户 加入RTC频道成功回调

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
        joinRTCChannelComplete:(NSString *_Nonnull)channelID
                           uid:(nonnull NSString *)uid;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, joinRTCChannelComplete channelID: String, uid: String)

    Parameters

    manager

    连麦管理器

    channelID

    加入频道ID

    uid

    当前加入RTC用户的RTCId

  • 本地用户 加入RTC频道失败回调

    Note

    目前只对 UCloud 生效

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
        joinRTCChannelFailure:(NSString *_Nonnull)channelID
                          uid:(nonnull NSString *)uid;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, joinRTCChannelFailure channelID: String, uid: String)

    Parameters

    manager

    连麦管理器

    channelID

    加入频道ID

    uid

    当前加入RTC用户的RTCId

  • 本地用户 退出RTC频道回调

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
        leaveRTCChannelComplete:(NSString *_Nonnull)channelID;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, leaveRTCChannelComplete channelID: String)

    Parameters

    manager

    连麦管理器

    channelID

    退出频道ID

  • 本地用户 连麦错误发生回调

    Note

    若自动退出RTC频道,则会触发 [leaveRTCChannelComplete:] 回调

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
                didOccurError:(NSInteger)errorCode;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, didOccurError errorCode: Int)

    Parameters

    manager

    连麦管理器

    errorCode

    错误码

  • 本地用户 ’网络状态‘ 发生变化

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(nonnull PLVLinkMicManager *)manager
        networkQualityDidChanged:(id)networkQuality;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, networkQualityDidChanged networkQuality: Any!)

    Parameters

    manager

    连麦管理器

    networkQuality

    当前 ‘网络状态’ 状态值

  • 本地用户 ’连麦状态‘ 发生变化

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(nonnull PLVLinkMicManager *)manager
        rtcConnectionStateDidChanged:(id)connectionState;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, rtcConnectionStateDidChanged connectionState: Any!)

    Parameters

    manager

    连麦管理器

    connectionState

    当前 ‘连麦状态’ 状态值

  • 当前 ’单次重连时长‘ 定时回调

    Note

    仅在属性 [hadJoinedRTC] 为 YES 时,每1秒回调通知一次最新值; 在即将 清零重置 前,会回调一次 最终的数值,无论此刻是否已间隔足够1秒; 在 清零重置 后,也将回调一次;

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(nonnull PLVLinkMicManager *)manager
        currentReconnectingThisTimeDuration:(NSInteger)reconnectingThisTimeDuration;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, currentReconnectingThisTimeDuration reconnectingThisTimeDuration: Int)

    Parameters

    manager

    连麦管理器

    reconnectingThisTimeDuration

    单次重连时长 (单位秒,带小数,可精确至毫秒)

远端用户(别人)事件回调

  • 远端用户 加入RTC频道回调

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
               didJoinedOfUid:(nonnull NSString *)uid;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, didJoinedOfUid uid: String)

    Parameters

    manager

    连麦管理器

    uid

    远端用户id

  • 远端用户 退出RTC频道回调

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
              didOfflineOfUid:(nonnull NSString *)uid;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, didOfflineOfUid uid: String)

    Parameters

    manager

    连麦管理器

    uid

    远端用户id

  • 远端用户 音频流禁止状态更新回调

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
                didAudioMuted:(BOOL)muted
                        byUid:(nonnull NSString *)uid;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, didAudioMuted muted: Bool, byUid uid: String)

    Parameters

    manager

    连麦管理器

    muted

    音频流是否禁止

    uid

    禁止状态更新的用户连麦ID

  • 远端用户 视频流禁止状态更新回调

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
                didVideoMuted:(BOOL)muted
                        byUid:(nonnull NSString *)uid;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, didVideoMuted muted: Bool, byUid uid: String)

    Parameters

    manager

    连麦管理器

    muted

    视频流是否禁止

    uid

    禁止状态更新的用户连麦ID

  • 远端用户 音频流 ‘mute状态’ 更新回调

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
                didAudioMuted:(BOOL)muted
             streamSourceType:(id)streamSourceType
                        byUid:(nonnull NSString *)uid;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, didAudioMuted muted: Bool, streamSourceType: Any!, byUid uid: String)

    Parameters

    manager

    连麦管理器

    muted

    音频流是否mute

    streamSourceType

    流的源类型

    uid

    mute状态更新对应的用户连麦ID

  • 远端用户 视频流 ‘mute状态’ 更新回调

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
                didVideoMuted:(BOOL)muted
             streamSourceType:(id)streamSourceType
                        byUid:(nonnull NSString *)uid;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, didVideoMuted muted: Bool, streamSourceType: Any!, byUid uid: String)

    Parameters

    manager

    连麦管理器

    muted

    视频流是否mute

    streamSourceType

    流的源类型

    uid

    mute状态更新的用户连麦ID

  • 远端用户 可订阅流加入

    Note

    目前只对 UCloud 生效

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
        didNewStreamJoinRoomOfUid:(nonnull NSString *)uid;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, didNewStreamJoinRoomOfUid uid: String)

    Parameters

    manager

    连麦管理器

    uid

    远端用户连麦ID

  • 远端用户 流加入房间 回调

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
               streamJoinRoom:(id)streamSourceType
                    userRTCId:(nonnull NSString *)userRTCId;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, streamJoinRoom streamSourceType: Any!, userRTCId: String)

    Parameters

    manager

    连麦管理器

    streamSourceType

    流的源类型

    userRTCId

    流所属的用户连麦ID

  • 远端用户 流离开房间 回调

    Note

    已订阅过的流离开房间,才会触发此回调;未曾订阅过的流离开房间,不触发此回调;

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
              streamLeaveRoom:(id)streamSourceType
                    userRTCId:(nonnull NSString *)userRTCId;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, streamLeaveRoom streamSourceType: Any!, userRTCId: String)

    Parameters

    manager

    连麦管理器

    streamSourceType

    流的源类型

    userRTCId

    流所属的用户连麦ID

通用(自己、别人) 事件回调

  • 远端用户 全部流已退出房间

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
        remoteUserTotalStreamsDidLeaveRoom:(nonnull NSString *)uid;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, remoteUserTotalStreamsDidLeaveRoom uid: String)

    Parameters

    manager

    连麦管理器

    uid

    远端用户连麦ID

  • 全部连麦成员的音频音量 回调

    Note

    该回调的时间间隔约为 100ms~300ms

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
        reportAudioVolumeOfSpeakers:
            (NSDictionary<NSString *, NSNumber *> *_Nonnull)volumeDict;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, reportAudioVolumeOfSpeakers volumeDict: [String : NSNumber])

    Parameters

    manager

    连麦管理器

    volumeDict

    连麦成员音量字典 (key:用户连麦ID,value:对应的流的音量值;value取值范围为 0.0 ~ 1.0)

  • RTC频道内某位用户 ‘网络状态’ 发生改变回调

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(PLVLinkMicManager *_Nonnull)manager
        userNetworkQualityDidChanged:(nonnull NSString *)userRTCId
                           txQuality:(id)txQuality
                           rxQuality:(id)rxQuality;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, userNetworkQualityDidChanged userRTCId: String, txQuality: Any!, rxQuality: Any!)

    Parameters

    manager

    连麦管理器

    userRTCId

    当前回调对应的用户RTCId

    txQuality

    该用户的上行网络状态

    rxQuality

    该用户的下行网络状态

  • 全部远端用户上行时延回调

    Note

    该回调的时间间隔约为 100ms~300ms

    Declaration

    Objective-C

    - (void)plvLinkMicManager:(nonnull PLVLinkMicManager *)manager
                  userRttDict:
                      (nonnull NSDictionary<NSString *, NSNumber *> *)rttDict;

    Swift

    optional func plvLinkMicManager(_ manager: PLVLinkMicManager, userRttDict rttDict: [String : NSNumber])

    Parameters

    manager

    连麦管理器

    rttDict

    上行时延字典(key:用户连麦ID,value:时延 单位毫秒)