PLVLinkMicManager
Objective-C
@interface PLVLinkMicManager : NSObject
Swift
class PLVLinkMicManager : NSObject
连麦管理器
-
delegate
Declaration
Objective-C
@property (nonatomic, weak) id<PLVLinkMicManagerDelegate> _Nullable delegate;
Swift
weak var delegate: PLVLinkMicManagerDelegate? { get set }
-
连麦场景类型
Declaration
Objective-C
@property (nonatomic) PLVLinkMicSceneType linkMicType;
Swift
var linkMicType: PLVLinkMicSceneType { get set }
-
连麦类型 (YES:音频连麦 NO:视频连麦)
Declaration
Objective-C
@property (nonatomic) BOOL linkMicOnAudio;
Swift
var linkMicOnAudio: Bool { get set }
-
本地用户是否为参与者
Declaration
Objective-C
@property (nonatomic) BOOL viewer;
Swift
var viewer: Bool { get set }
-
参与者 是否被允许上麦
Declaration
Objective-C
@property (nonatomic) BOOL viewerAllow;
Swift
var viewerAllow: Bool { get set }
-
麦克风 是否默认开启
Note
仅在 [joinRtcChannelWithChannelId:] 方法调用前设置有效 YES:开启 NO:关闭;默认值 YESDeclaration
Objective-C
@property (nonatomic) BOOL micDefaultOpen;
Swift
var micDefaultOpen: Bool { get set }
-
摄像头 是否默认开启
Note
仅在 [joinRtcChannelWithChannelId:] 方法调用前设置有效 YES:开启 NO:关闭;默认值 NODeclaration
Objective-C
@property (nonatomic) BOOL cameraDefaultOpen;
Swift
var cameraDefaultOpen: Bool { get set }
-
摄像头 是否默认前置
Note
仅在 [joinRtcChannelWithChannelId:] 方法调用前设置有效 YES:前置 NO:后置;默认值 YESDeclaration
Objective-C
@property (nonatomic) BOOL cameraDefaultFront;
Swift
var cameraDefaultFront: Bool { get set }
-
[重连时间] 单次重连时长
Note
单位秒,带小数,可精确至毫秒; 一次连麦中,可能有多次重连,此属性为 单次重连时长;Declaration
Objective-C
@property (nonatomic, readonly) NSTimeInterval reconnectingThisTimeDuration;
Swift
var reconnectingThisTimeDuration: TimeInterval { get }
-
[重连时间] 全部重连累计时长
Note
单位秒,带小数,可精确至毫秒; 一次连麦中,可能有多次重连,此属性为 全部重连累计时长(包括当前此刻,无论是否 ’重连中‘ 或 ’重连结束‘);Declaration
Objective-C
@property (nonatomic, readonly) NSTimeInterval reconnectingTotalDuration;
Swift
var reconnectingTotalDuration: TimeInterval { get }
-
当前 流清晰度 (默认值:PLVBLinkMicStreamQuality180P)
Declaration
Objective-C
@property (nonatomic, readonly) int streamQuality;
Swift
var streamQuality: Int32 { get }
-
连麦时视频流宽高比 (默认值:PLVBLinkMicStreamScale16_9)
Note
仅支持在连麦前配置Declaration
Objective-C
@property (nonatomic) int streamScale;
Swift
var streamScale: Int32 { get set }
-
频道号ID(房间号)
Declaration
Objective-C
@property (nonatomic, copy, readonly) NSString *_Nonnull channelId;
Swift
var channelId: String { get }
-
本地用户(自己)连麦ID
Declaration
Objective-C
@property (nonatomic, copy, readonly) NSString *_Nonnull userLinkMicId;
Swift
var userLinkMicId: String { get }
-
当前是否已加入RTC频道
Declaration
Objective-C
@property (nonatomic, readonly) BOOL hadJoinedRTC;
Swift
var hadJoinedRTC: Bool { get }
-
当前 本地用户网络状态
Declaration
Objective-C
@property (nonatomic, readonly) int networkQuality;
Swift
var networkQuality: Int32 { get }
-
当前 已订阅远端流是否需要被禁用 (“禁用”指本地音视频;该值仅部分RTC类型下有意义)
Declaration
Objective-C
@property (nonatomic, readonly) BOOL subscribedRemoteStreamNeedMute;
Swift
var subscribedRemoteStreamNeedMute: Bool { get }
-
创建连麦管理器
Note
由外部根据频道信息获取到rtc类型值,并在调用此方法时传入;若传入的rtcType值无效,将创建失败,并返回 nil。
Declaration
Objective-C
+ (nonnull instancetype)linkMicManagerWithRTCType:(nonnull NSString *)rtcType;
Swift
convenience init(rtcType: String)
Parameters
rtcType
rtc类型值
-
更新互动学堂 RTC Token
Note
目前不支持声网,声网token过期会自动调用‘-updateLinkMicTokenWith:completion:'更新token
Declaration
Objective-C
- (void)updateVClassRTCTokenWith:(nonnull PLVLinkMicGetTokenModel *)model completion:(nullable void (^)(BOOL))completion;
Swift
func updateVClassRTCToken(with model: PLVLinkMicGetTokenModel) async -> Bool
Parameters
model
连麦GetToken模型
completion
更新完成回调
-
更新连麦Token
Note
加入RTC连麦频道前,必须调用此方法更新连麦Token。更新完成将通过 [completion:] 进行回调。 若回调 NO 则表示更新失败,此时不允许加入RTC连麦频道,调用 [joinRtcChannelWithChannelId:] 将失败。
Declaration
Objective-C
- (void)updateLinkMicTokenWith:(nonnull PLVLinkMicGetTokenModel *)model completion:(nullable void (^)(BOOL))completion;
Swift
func updateLinkMicToken(with model: PLVLinkMicGetTokenModel) async -> Bool
Parameters
model
更新连麦Token所需数据模型
completion
更新完成回调 (YES: 更新成功, NO: 更新失败)
-
加入RTC连麦频道
Note
成功加入将收到 [joinRTCChannelComplete] 回调;调用该方法,将立刻收到返回的 int 值, 小于0表示失败,等于0表示成功。
Declaration
Objective-C
- (int)joinRtcChannelWithChannelId:(nonnull NSString *)channelId userLinkMicId:(nonnull NSString *)userLinkMicId;
Swift
func joinRtcChannel(withChannelId channelId: String, userLinkMicId: String) -> Int32
Parameters
channelId
频道号ID
userLinkMicId
用户连麦ID
-
退出RTC连麦频道
Note
退出RTC连麦频道,成功退出将收到 [leaveRTCChannelComplete:] 回调;Declaration
Objective-C
- (void)leaveRtcChannel;
Swift
func leaveRtcChannel()
-
配置讲师连麦ID,用于讲师连麦ID不为频道号时
Declaration
Objective-C
- (void)setTeacherUserId:(nonnull NSString *)teacherId;
Swift
func setTeacherUserId(_ teacherId: String)
-
角色切换
Declaration
Objective-C
- (void)switchClientRoleTo:(id)role;
Swift
func switchClientRole(to role: Any!)
-
添加RTC画面
Declaration
Objective-C
- (void)subscribeStreamWithRTCUserId:(nonnull NSString *)rtcUserId renderOnView:(id)renderSuperView mediaType:(id)mediaType;
Swift
func subscribeStream(withRTCUserId rtcUserId: String, renderOnView renderSuperView: Any!, mediaType: Any!)
-
根据流订阅方式 添加RTC画面
Declaration
Objective-C
- (void)subscribeStreamWithRTCUserId:(nonnull NSString *)rtcUserId renderOnView:(id)renderSuperView mediaType:(id)mediaType subscribeMode:(id)subscribeMode;
Swift
func subscribeStream(withRTCUserId rtcUserId: String, renderOnView renderSuperView: Any!, mediaType: Any!, subscribeMode: Any!)
-
将某位用户的流渲染 进行移除
Declaration
Objective-C
- (void)unsubscribeStreamWithRTCUserId:(nonnull NSString *)rtcUserId;
Swift
func unsubscribeStream(withRTCUserId rtcUserId: String)
-
根据流订阅方式 将某位用户的流渲染 进行移除
Declaration
Objective-C
- (void)unsubscribeStreamWithRTCUserId:(nonnull NSString *)rtcUserId subscribeMode:(id)subscribeMode;
Swift
func unsubscribeStream(withRTCUserId rtcUserId: String, subscribeMode: Any!)
-
Undocumented
Declaration
Objective-C
- (void)switchSubscribeStreamMediaTypeWithRTCUserId:(NSString *)rtcUserId mediaType:(PLVBRTCSubscribeStreamMediaType)toMediaType;
Swift
func switchSubscribeStreamMediaType(withRTCUserId rtcUserId: String, mediaType toMediaType: Any!)
-
禁用或启用 全部已订阅远端流 的音视频
Note
仅在部分RTC类型下生效; 调用后,将改变 [subscribedRemoteStreamNeedMute] 值;未来有新流被订阅时,也将根据 [subscribedRemoteStreamNeedMute] 值同步生效处理; 该操作为本地操作,不会触发RTC房间内其他成员收到回调;
Declaration
Objective-C
- (void)muteSubscribedRemoteStreamInLocalWithMute:(BOOL)mute;
Swift
func muteSubscribedRemoteStreamInLocal(withMute mute: Bool)
Parameters
mute
禁用或启用
-
连麦的本地观众用户第一画面发生改变
Declaration
Objective-C
- (void)linkMicLocalUserFirstScreenDidChanged:(BOOL)firstScreen;
Swift
func linkMicLocalUserFirstScreenDidChanged(_ firstScreen: Bool)
-
检测当前连麦状态
Declaration
Objective-C
+ (void)requestLinkMicStatusWithChannelId:(nonnull NSString *)channelId completion:(nonnull void (^)(NSString *_Nonnull, NSString *_Nonnull)) completion failure:(nonnull void (^)(NSError *_Nonnull)) failure;
Swift
class func requestLinkMicStatus(withChannelId channelId: String, completion: @escaping (String, String) -> Void, failure: @escaping (Error) -> Void)
-
配置 本地视频预览画面 的镜像类型
Declaration
Objective-C
- (void)setupLocalVideoPreviewMirrorMode:(id)mirrorMode;
Swift
func setupLocalVideoPreviewMirrorMode(_ mirrorMode: Any!)
Parameters
mirrorMode
本地视频预览画面的镜像类型 (默认值:PLVBRTCVideoMirrorMode_Auto)
-
切换 本地用户 的前后置摄像头
Declaration
Objective-C
- (void)switchLocalUserCamera:(BOOL)frontCamera;
Swift
func switchLocalUserCamera(_ frontCamera: Bool)
Parameters
frontCamera
切换为 前置或后置 摄像头 (YES:前置;NO:后置)
-
开启或关闭 本地用户 的摄像头
Note
开启:采集数据、渲染预览、取消停止本地视频流推送;关闭:停止采集数据、停止渲染预览、停止本地视频流推送; 将触发RTC房间内其他成员,收到回调;
Declaration
Objective-C
- (void)openLocalUserCamera:(BOOL)openCamera;
Swift
func openLocalUserCamera(_ openCamera: Bool)
Parameters
openCamera
开启或关闭 摄像头 (YES:开启;NO:关闭)
-
开启或关闭 本地用户 的麦克风
Note
开启:采集数据、取消停止本地音频流推送;关闭:停止采集数据、停止本地音频流推送; 将触发RTC房间内其他成员,收到回调;
Declaration
Objective-C
- (void)openLocalUserMic:(BOOL)openMic;
Swift
func openLocalUserMic(_ openMic: Bool)
Parameters
openMic
开启或关闭 麦克风 (YES:开启;NO:关闭)
-
允许远端用户上麦
Note
该方法 仅用于互动学堂 及 仅面向 ‘远端用户’。Declaration
Objective-C
- (void)joinResponseWithRemoteUserDict:(nonnull NSDictionary *)userDict needAnswer:(BOOL)needAnswer completed:(nonnull void (^)(BOOL))completedBlock;
Swift
func joinResponse(withRemoteUserDict userDict: [AnyHashable : Any], needAnswer: Bool, completed completedBlock: @escaping (Bool) -> Void)
Parameters
userDict
用户数据字典
needAnswer
是否需要答复(主动操作上麦为YES,被动操作上麦为NO)
completedBlock
请求发送结果Block
-
挂断远端用户的连麦
Note
目前仅用于挂断视频连麦
Declaration
Objective-C
- (void)closeLinkMicWithRemoteUserId:(nonnull NSString *)userId completed:(void (^_Nullable)(BOOL))completedBlock;
Swift
func closeLinkMic(withRemoteUserId userId: String, completed completedBlock: ((Bool) -> Void)? = nil)
Parameters
userId
连麦用户ID
completedBlock
请求发送结果Block
-
禁用或取消禁用‘远端用户麦克风’
Note
该方法 仅用于互动学堂 及 仅面向 ‘远端用户’。
Declaration
Objective-C
- (void)muteMicrophoneWithRemoteUserId:(nonnull NSString *)userId mute:(BOOL)mute completed:(void (^_Nullable)(BOOL))completedBlock;
Swift
func muteMicrophone(withRemoteUserId userId: String, mute: Bool, completed completedBlock: ((Bool) -> Void)? = nil)
Parameters
userId
用户ID
mute
YES-禁用;NO-取消禁用
completedBlock
请求发送结果Block
-
禁用或取消禁用‘远端用户摄像头’
Note
该方法 仅用于互动学堂 及 仅面向 ‘远端用户’。
Declaration
Objective-C
- (void)muteCameraWithRemoteUserId:(nonnull NSString *)userId mute:(BOOL)mute completed:(void (^_Nullable)(BOOL))completedBlock;
Swift
func muteCamera(withRemoteUserId userId: String, mute: Bool, completed completedBlock: ((Bool) -> Void)? = nil)
Parameters
userId
用户ID
mute
YES-禁用;NO-取消禁用
completedBlock
请求发送结果Block
-
配置 流清晰度
Note
该方法 仅用于互动学堂 及 仅面向 ‘远端用户’。
Declaration
Objective-C
- (void)setupStreamQuality:(id)streamQuality;
Swift
func setupStreamQuality(_ streamQuality: Any!)
Parameters
streamQuality
流清晰度