PLVRTCStreamerManager
Objective-C
@interface PLVRTCStreamerManager : NSObject
Swift
class PLVRTCStreamerManager : NSObject
RTC 推流管理器
-
delegate
Declaration
Objective-C
@property (nonatomic, weak) id<PLVRTCStreamerManagerDelegate> _Nullable delegate;
Swift
weak var delegate: PLVRTCStreamerManagerDelegate? { get set }
-
[硬件] 麦克风 是否默认开启
Note
仅在 [joinRTCChannel] 方法调用前设置有效 YES:开启 NO:关闭;默认值 YESDeclaration
Objective-C
@property (nonatomic) BOOL micDefaultOpen;
Swift
var micDefaultOpen: Bool { get set }
-
[硬件] 摄像头 是否默认开启
Note
仅在 [joinRTCChannel] 方法调用前设置有效 YES:开启 NO:关闭;默认值 NODeclaration
Objective-C
@property (nonatomic) BOOL cameraDefaultOpen;
Swift
var cameraDefaultOpen: Bool { get set }
-
[硬件] 摄像头 是否默认前置
Note
仅在 [joinRTCChannel] 方法调用前设置有效 YES:前置 NO:后置;默认值 YESDeclaration
Objective-C
@property (nonatomic) BOOL cameraDefaultFront;
Swift
var cameraDefaultFront: Bool { get set }
-
当前 是否已加入RTC房间
Declaration
Objective-C
@property (nonatomic, readonly) BOOL hadJoinedRTC;
Swift
var hadJoinedRTC: Bool { get }
-
当前 是否推流已开始 (以 ‘sessionId请求成功’ 作为起始点)
Declaration
Objective-C
@property (nonatomic, readonly) BOOL pushStreamStarted;
Swift
var pushStreamStarted: Bool { get }
-
当前 rtcToken 是否可用
Declaration
Objective-C
@property (nonatomic, readonly) BOOL rtcTokenAvailable;
Swift
var rtcTokenAvailable: Bool { get }
-
当前 RTC服务 连接状态
Declaration
Objective-C
@property (nonatomic, readonly) int connectionState;
Swift
var connectionState: Int32 { get }
-
当前 本地用户网络状态
Declaration
Objective-C
@property (nonatomic, readonly) int networkQuality;
Swift
var networkQuality: Int32 { get }
-
当前 流宽高比 (默认值:PLVBLinkMicStreamScale16_9)
Declaration
Objective-C
@property (nonatomic, readonly) int streamScale;
Swift
var streamScale: Int32 { get }
-
当前 流清晰度 (默认值:PLVBLinkMicStreamQuality180P)
Declaration
Objective-C
@property (nonatomic, readonly) int streamQuality;
Swift
var streamQuality: Int32 { get }
-
当前 混流布局模式 (值不为 1、2、3 的情况下,默认以 PLVRTCStreamerMixLayoutType_Single 作替代使用)
Declaration
Objective-C
@property (nonatomic, readonly) PLVRTCStreamerMixLayoutType mixLayoutType;
Swift
var mixLayoutType: PLVRTCStreamerMixLayoutType { get }
-
当前 本地视频预览画面 镜像类型
Declaration
Objective-C
@property (nonatomic, readonly) int localVideoMirrorMode;
Swift
var localVideoMirrorMode: Int32 { get }
-
当前 本地摄像头 是否前置
Declaration
Objective-C
@property (nonatomic, readonly) BOOL localCameraFront;
Swift
var localCameraFront: Bool { get }
-
当前 本地闪光灯 是否开启
Declaration
Objective-C
@property (nonatomic, readonly) BOOL localCameraTorchOpen;
Swift
var localCameraTorchOpen: Bool { get }
-
当前 本地摄像头 是否开启
Declaration
Objective-C
@property (nonatomic, readonly) BOOL localCameraOpen;
Swift
var localCameraOpen: Bool { get }
-
当前 本地视频流 是否停止推送
Declaration
Objective-C
@property (nonatomic, readonly) BOOL localVideoStreamMute;
Swift
var localVideoStreamMute: Bool { get }
-
当前 本地麦克风 音量
Declaration
Objective-C
@property (nonatomic, readonly) CGFloat localMicVolume;
Swift
var localMicVolume: CGFloat { get }
-
当前 本地麦克风 是否开启
Declaration
Objective-C
@property (nonatomic, readonly) BOOL localMicOpen;
Swift
var localMicOpen: Bool { get }
-
当前 本地音频流 是否停止推送
Declaration
Objective-C
@property (nonatomic, readonly) BOOL localAudioStreamMute;
Swift
var localAudioStreamMute: Bool { get }
-
当前 频道连麦功能是否开启(YES:连麦功能已开启 NO:连麦功能已关闭)
Declaration
Objective-C
@property (nonatomic, readonly) BOOL channelLinkMicOpen;
Swift
var channelLinkMicOpen: Bool { get }
-
当前 频道连麦媒体类型
Declaration
Objective-C
@property (nonatomic, readonly) PLVChannelLinkMicMediaType channelLinkMicMediaType;
Swift
var channelLinkMicMediaType: PLVChannelLinkMicMediaType { get }
-
当前 本地视频流镜像类型 (默认值:PLVBRTCVideoMirrorMode_Disabled)
Declaration
Objective-C
@property (nonatomic, readonly) int localVideoStreamMirrorMode;
Swift
var localVideoStreamMirrorMode: Int32 { get }
-
当前 频道Id (即房间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 sessionId;
Swift
var sessionId: String { get }
-
[推流时间] 开始推流的时间戳
Note
单位秒,带小数,可精确至毫秒; 以获取 sessionId 成功为起始时间点; 仅在属性 [pushStreamStarted] 为 YES 时有值;Declaration
Objective-C
@property (nonatomic, readonly) NSTimeInterval startPushStreamTimestamp;
Swift
var startPushStreamTimestamp: TimeInterval { get }
-
[推流时间] 已有效推流时长
Note
单位秒,带小数,可精确至毫秒; 不包含重连时长;若退至后台期间,推流未断开,也将算入‘已有效推流时长’中; 仅在属性 [pushStreamStarted] 为 YES 时有值;Declaration
Objective-C
@property (nonatomic, readonly) NSTimeInterval pushStreamValidDuration;
Swift
var pushStreamValidDuration: TimeInterval { get }
-
[推流时间] 总推流时长
Note
单位秒,带小数,可精确至毫秒; 包含重连时长;即距离 开始推流时间戳 的已过时长; 仅在属性 [pushStreamStarted] 为 YES 时有值;Declaration
Objective-C
@property (nonatomic, readonly) NSTimeInterval pushStreamTotalDuration;
Swift
var pushStreamTotalDuration: TimeInterval { get }
-
[重连时间] 单次重连时长
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 }
-
当前 本地预览画布模型
Declaration
Objective-C
@property (nonatomic, strong, readonly) PLVBRTCVideoViewCanvasModel * currentLocalPreviewCanvasModel
Swift
var currentLocalPreviewCanvasModel: UnsafeMutablePointer<Int32> { get }
-
当前 混流用户顺序列表
Declaration
Objective-C
@property (nonatomic, strong, readonly) NSArray<PLVRTCStreamerMixUser *> *_Nonnull mixUserList;
Swift
var mixUserList: [PLVRTCStreamerMixUser] { get }
-
创建 RTC推流管理器
Declaration
Objective-C
+ (nonnull instancetype) rtcStreamerManagerWithRTCType:(nonnull NSString *)rtcType channelId:(nonnull NSString *)channelId;
Swift
convenience init(rtcType: String, channelId: String)
Parameters
rtcType
rtc类型值
channelId
频道Id
-
更新 RTC Token
Declaration
Objective-C
- (void)updateRTCTokenWith:(nonnull PLVLinkMicGetTokenModel *)model completion:(nullable void (^)(BOOL))completion;
Swift
func updateRTCToken(with model: PLVLinkMicGetTokenModel, completion: ((Bool) -> Void)? = nil)
Parameters
model
连麦GetToken模型
completion
更新完成回调
-
加入 RTC频道
Note
成功加入将收到 [plvRTCStreamerManager:localUserJoinRTCChannelComplete:] 回调
Declaration
Objective-C
- (int)joinRTCChannel;
Swift
func joinRTCChannel() -> Int32
Return Value
执行结果 (0: 成功;<0: 失败)
-
退出 RTC频道
Note
成功加入将收到 [plvRTCStreamerManager:localUserLeaveRTCChannelComplete:] 回调
Declaration
Objective-C
- (int)leaveRTCChannel;
Swift
func leaveRTCChannel() -> Int32
Return Value
执行结果 (0: 成功;<0: 失败)
-
配置 流宽高比
Declaration
Objective-C
- (void)setupStreamScale:(id)streamScale;
Swift
func setupStreamScale(_ streamScale: Any!)
Parameters
streamScale
流宽高比
-
配置 流清晰度
Declaration
Objective-C
- (void)setupStreamQuality:(id)streamQuality;
Swift
func setupStreamQuality(_ streamQuality: Any!)
Parameters
streamQuality
流清晰度
-
配置 本地视频流 的镜像类型
Note
该方法仅影响 远端用户观看本地视频流画面的镜像效果,而不影响本地预览画面的镜像效果
Declaration
Objective-C
- (void)setupLocalVideoStreamMirrorMode:(id)mirrorMode;
Swift
func setupLocalVideoStreamMirrorMode(_ mirrorMode: Any!)
Parameters
mirrorMode
本地视频流的镜像类型 (默认值:PLVBRTCVideoMirrorMode_Disabled)
-
配置 混流用户顺序列表
Declaration
Objective-C
- (void)setupMixUserList: (nonnull NSArray<PLVRTCStreamerMixUser *> *)mixUserList;
Swift
func setupMixUserList(_ mixUserList: [PLVRTCStreamerMixUser])
Parameters
mixUserList
混流用户顺序列表
-
Undocumented
Declaration
Objective-C
- (void)subscribeStreamWithRTCUserId:(NSString *)rtcUserId renderOnView:(UIView *)renderSuperView mediaType:(PLVBRTCSubscribeStreamMediaType)mediaType;
Swift
func subscribeStream(withRTCUserId rtcUserId: String, renderOnView renderSuperView: Any!, mediaType: Any!)
-
Undocumented
Declaration
Objective-C
- (void)unsubscribeStreamWithRTCUserId:(NSString *)rtcUserId;
Swift
func unsubscribeStream(withRTCUserId rtcUserId: String)
-
开始推流
Note
将触发 [plvRTCStreamerManager:pushStreamStartedDidChanged:] 回调,可获知推流是否成功
Declaration
Objective-C
- (void)startPushStreamWithStream:(nonnull NSString *)stream rtmpUrl:(nonnull NSString *)rtmpUrl;
Swift
func startPushStream(withStream stream: String, rtmpUrl: String)
Parameters
stream
流名
rtmpUrl
推流地址
-
停止推流
Declaration
Objective-C
- (void)stopPushStream;
Swift
func stopPushStream()
-
配置 混流布局模式
Declaration
Objective-C
- (void)setupMixLayoutType:(PLVRTCStreamerMixLayoutType)mixLayoutType;
Swift
func setupMixLayoutType(_ mixLayoutType: PLVRTCStreamerMixLayoutType)
Parameters
mixLayoutType
混流布局模式
-
配置 本地预览画面
Note
仅作用于 ‘本地预览画面’ 的相关属性配置;不自动开始预览,不自动开始推流;
Declaration
Objective-C
- (void)setupLocalPreviewWithCanvasModel:(id)canvasModel;
Swift
func setupLocalPreview(withCanvasModel canvasModel: Any!)
Parameters
canvasModel
本地预览画面模型
-
配置 本地视频预览画面 的镜像类型
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:后置)
-
开启或关闭 本地用户 的闪光灯
Declaration
Objective-C
- (void)openLocalUserCameraTorch:(BOOL)openCameraTorch;
Swift
func openLocalUserCameraTorch(_ openCameraTorch: Bool)
Parameters
openCameraTorch
开启或关闭 闪光灯 (YES:开启;NO:关闭)
-
开启或关闭 本地用户 的摄像头
Note
开启:采集数据、渲染预览、取消停止本地视频流推送;关闭:停止采集数据、停止渲染预览、停止本地视频流推送; 将触发RTC房间内其他成员,收到回调;
Declaration
Objective-C
- (void)openLocalUserCamera:(BOOL)openCamera completion:(nullable void (^)(int))completion;
Swift
func openLocalUserCamera(_ openCamera: Bool, completion: ((Int32) -> Void)? = nil)
Parameters
openCamera
开启或关闭 摄像头 (YES:开启;NO:关闭)
-
开启或关闭 本地用户 的麦克风
Note
开启:采集数据、取消停止本地音频流推送;关闭:停止采集数据、停止本地音频流推送; 将触发RTC房间内其他成员,收到回调;
Declaration
Objective-C
- (void)openLocalUserMic:(BOOL)openMic;
Swift
func openLocalUserMic(_ openMic: Bool)
Parameters
openMic
开启或关闭 麦克风 (YES:开启;NO:关闭)
-
开启或关闭 ”视频连麦“
Declaration
Objective-C
- (void)openVideoLinkMic:(BOOL)open emitCompleteBlock:(nullable void (^)(BOOL))emitCompleteBlock;
Swift
func openVideoLinkMic(_ open: Bool, emitComplete emitCompleteBlock: ((Bool) -> Void)? = nil)
Parameters
open
开启或关闭
emitCompleteBlock
开启或关闭 ”视频连麦“ 的请求发送结果Block
-
开启或关闭 ”音频连麦“
Declaration
Objective-C
- (void)openAudioLinkMic:(BOOL)open emitCompleteBlock:(nullable void (^)(BOOL))emitCompleteBlock;
Swift
func openAudioLinkMic(_ open: Bool, emitComplete emitCompleteBlock: ((Bool) -> Void)? = nil)
Parameters
open
开启或关闭
emitCompleteBlock
开启或关闭 ”音频连麦“ 的请求发送结果Block
-
关闭 “连麦功能”
Note
区别于 [openVideoLinkMic:emitCompleteBlock:]、[openAudioLinkMic:emitCompleteBlock:] 两个方法,该方法内部自行判断当前连麦类型,去执行“关闭连麦”的操作;
Declaration
Objective-C
- (void)closeLinkMicEmitCompleteBlock: (nullable void (^)(BOOL))emitCompleteBlock;
Swift
func closeLinkMicEmitComplete(_ emitCompleteBlock: ((Bool) -> Void)? = nil)
Parameters
emitCompleteBlock
关闭 “连麦功能” 的请求发送结果Block
-
允许远端用户上麦
Note
该方法仅面向 ‘远端用户’;若操作 ‘本地用户’,该方法将调用失败并回调 NO;
Declaration
Objective-C
- (void)allowRemoteUserJoinLinkMic:(nonnull NSDictionary *)userDict emitCompleteBlock:(nullable void (^)(BOOL))emitCompleteBlock;
Swift
func allowRemoteUserJoinLinkMic(_ userDict: [AnyHashable : Any], emitComplete emitCompleteBlock: ((Bool) -> Void)? = nil)
Parameters
userDict
用户数据字典
emitCompleteBlock
允许用户上麦 的请求发送结果Block
-
允许远端用户上麦 (兼容有’举手‘概念的用户)
Note
该方法仅面向 ‘远端用户’;若操作 ‘本地用户’,该方法将调用失败并回调 NO;
Declaration
Objective-C
- (void)allowRemoteUserJoinLinkMic:(nonnull NSDictionary *)userDict raiseHand:(BOOL)raiseHand emitCompleteBlock:(nullable void (^)(BOOL))emitCompleteBlock;
Swift
func allowRemoteUserJoinLinkMic(_ userDict: [AnyHashable : Any], raiseHand: Bool, emitComplete emitCompleteBlock: ((Bool) -> Void)? = nil)
Parameters
userDict
用户数据字典
raiseHand
用户当前是否举手 (仅针对部分用户类型生效;无‘举手’概念的用户,可直接使用 [allowRemoteUserJoinLinkMic:emitCompleteBlock:] 方法)
emitCompleteBlock
允许用户上麦 的请求发送结果Block
-
挂断远端用户的连麦
Note
该方法仅面向 ‘远端用户’;若操作 ‘本地用户’,该方法将调用失败并回调 NO;
Declaration
Objective-C
- (void)closeRemoteUserLinkMic:(nonnull NSDictionary *)userDict emitCompleteBlock:(nullable void (^)(BOOL))emitCompleteBlock;
Swift
func closeRemoteUserLinkMic(_ userDict: [AnyHashable : Any], emitComplete emitCompleteBlock: ((Bool) -> Void)? = nil)
Parameters
userDict
用户数据字典
emitCompleteBlock
挂断远端用户的连麦 的请求发送结果Block
-
禁用或取消禁用 远端用户麦克风
Note
该方法仅面向 ‘远端用户’;若操作 ‘本地用户’,该方法将调用失败并回调 NO;
Declaration
Objective-C
- (void)muteRemoteUserMic:(nonnull NSDictionary *)userDict muteMic:(BOOL)muteMic emitCompleteBlock:(nullable void (^)(BOOL))emitCompleteBlock;
Swift
func muteRemoteUserMic(_ userDict: [AnyHashable : Any], muteMic: Bool, emitComplete emitCompleteBlock: ((Bool) -> Void)? = nil)
Parameters
userDict
用户数据字典
muteMic
禁用或取消禁用
emitCompleteBlock
禁用或取消禁用 远端用户麦克风 的请求发送结果Block
-
禁用或取消禁用 远端用户摄像头
Note
该方法仅面向 ‘远端用户’;若操作 ‘本地用户’,该方法将调用失败并回调 NO; [channelLinkMicMediaType] 为PLVChannelLinkMicMediaType_Audio时 (即’音频连麦‘下),该方法将调用失败;
Declaration
Objective-C
- (void)muteRemoteUserCamera:(nonnull NSDictionary *)userDict muteCamera:(BOOL)muteCamera emitCompleteBlock:(nullable void (^)(BOOL))emitCompleteBlock;
Swift
func muteRemoteUserCamera(_ userDict: [AnyHashable : Any], muteCamera: Bool, emitComplete emitCompleteBlock: ((Bool) -> Void)? = nil)
Parameters
userDict
用户数据字典
muteCamera
禁用或取消禁用
emitCompleteBlock
禁用或取消禁用 远端用户摄像头 的请求发送结果Block