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:时延 单位毫秒)