RCRTCLocalUser Class Reference

Inherits from RCRTCUser : NSObject
Declared in RCRTCLocalUser.h

Overview

音视频本地用户(当前登陆者)

  localStreams

本地用户发布的音视频流

@property (nonatomic, copy, readonly) NSArray<RCRTCOutputStream*> *DEPRECATED_MSG_ATTRIBUTE ( "use streams property instead" ) localStreams

Discussion

本地用户发布的音视频流

Declared In

RCRTCLocalUser.h

  streams

本地用户发布的音视频流

@property (nonatomic, copy, readonly) NSArray<RCRTCOutputStream*> *streams

Discussion

本地用户发布的音视频流

Declared In

RCRTCLocalUser.h

– setAttributeValue:forKey:message:completion:

设置全局用户属性

- (void)setAttributeValue:(NSString *)attributeValue forKey:(NSString *)key message:(nullable RCMessageContent *)message completion:(nullable RCRTCOperationCallback)completion DEPRECATED_MSG_ATTRIBUTE ( "use setAttribute:forKey:message:completion: API instead" )

Parameters

attributeValue

属性值

key

属性名称

message

是否在设置属性的时候携带消息内容,传空则不往房间中发送消息(也不会收到有用户属性变换的回调)

completion

设置完成回调 @discussion 设置用户属性

@remarks 房间管理

Discussion

设置全局用户属性

Declared In

RCRTCLocalUser.h

– setAttribute:forKey:message:completion:

设置全局用户属性

- (void)setAttribute:(NSString *)attributeValue forKey:(NSString *)key message:(nullable RCMessageContent *)message completion:(nullable RCRTCOperationCallback)completion

Parameters

attributeValue

属性值

key

属性名称

message

是否在设置属性的时候携带消息内容,传空则不往房间中发送消息(也不会收到有用户属性变换的回调)

completion

设置完成回调 @discussion 设置用户属性

@remarks 房间管理

Discussion

设置全局用户属性

Declared In

RCRTCLocalUser.h

– deleteAttributes:message:completion:

删除全局用户属性

- (void)deleteAttributes:(NSArray<NSString*> *)attributeKeys message:(nullable RCMessageContent *)message completion:(nullable RCRTCOperationCallback)completion

Parameters

attributeKeys

属性名称数组

message

是否在设置属性的时候携带消息内容,传空则不往房间中发送消息

completion

删除完成回调 @discussion 删除用户属性

@remarks 房间管理

Discussion

删除全局用户属性

Declared In

RCRTCLocalUser.h

– getAttributes:completion:

获取全局用户属性

- (void)getAttributes:(NSArray<NSString*> *)attributeKeys completion:(nullable RCRTCAttributeOperationCallback)completion

Parameters

attributeKeys

属性名称

completion

获取结果回调 @discussion 获取用户属性

@remarks 房间管理

Discussion

获取全局用户属性

Declared In

RCRTCLocalUser.h

– publishDefaultStreams:

发布本地默认音视频流

- (void)publishDefaultStreams:(nullable RCRTCOperationCallback)completion

Parameters

completion

发布完成回调 @discussion 发布默认音视频流

@remarks 资源管理

Discussion

发布本地默认音视频流

Declared In

RCRTCLocalUser.h

– publishStream:completion:

发布本地指定音视频流

- (void)publishStream:(nullable RCRTCOutputStream *)stream completion:(nullable RCRTCOperationCallback)completion

Parameters

stream

发布的音视频流

completion

发布的音视频流结果 @discussion 发布音视频流

@remarks 资源管理

Discussion

发布本地指定音视频流

Declared In

RCRTCLocalUser.h

– publishStreams:completion:

发布多路本地指定音视频流

- (void)publishStreams:(nullable NSArray<RCRTCOutputStream*> *)streams completion:(nullable RCRTCOperationCallback)completion

Parameters

streams

发布音视频流集合

completion

发布的音视频流结果 @discussion 发布多路音视频流

@remarks 资源管理

Discussion

发布多路本地指定音视频流

Declared In

RCRTCLocalUser.h

– publishDefaultLiveStreams:

发布本地默认音视频流,直播模式专用

- (void)publishDefaultLiveStreams:(nullable RCRTCLiveOperationCallback)completion

Parameters

completion

发布完成回调 @discussion 发布主播默认音视频流, 此接口仅直播模式的主播可用, 即 RCRTCRoomType 为 RCRTCRoomTypeLive 可用

@remarks 资源管理

Discussion

发布本地默认音视频流,直播模式专用

Declared In

RCRTCLocalUser.h

– publishLiveStream:completion:

发布本地指定音视频流,直播模式专用

- (void)publishLiveStream:(nullable RCRTCOutputStream *)stream completion:(nullable RCRTCLiveOperationCallback)completion

Parameters

stream

发布的音视频流

completion

发布的音视频流结果, 包括此主播的推流 url @discussion 发布直播音视频流, 此接口仅直播模式的主播可用, 即 RCRTCRoomType 为 RCRTCRoomTypeLive 可用

@remarks 资源管理

Discussion

发布本地指定音视频流,直播模式专用

Declared In

RCRTCLocalUser.h

– unpublishDefaultStreams:

取消发布本地默认音视频流

- (void)unpublishDefaultStreams:(nullable RCRTCOperationCallback)completion

Parameters

completion

取消发布完成回调 @discussion 取消发布默认音视频流

@remarks 资源管理

Discussion

取消发布本地默认音视频流

Declared In

RCRTCLocalUser.h

– unpublishStream:completion:

取消发布本地指定音视频流

- (void)unpublishStream:(nullable RCRTCOutputStream *)stream completion:(nullable RCRTCOperationCallback)completion

Parameters

stream

取消发布的音视频流

completion

发布的音视频流结果 @discussion 取消发布音视频流

@remarks 资源管理

Discussion

取消发布本地指定音视频流

Declared In

RCRTCLocalUser.h

– unpublishStreams:completion:

取消发布多路本地指定音视频流

- (void)unpublishStreams:(nullable NSArray<RCRTCOutputStream*> *)streams completion:(nullable RCRTCOperationCallback)completion

Parameters

streams

取消发布的音视频流集合

completion

发布的音视频流结果 @discussion 取消发布多路音视频流

@remarks 资源管理

Discussion

取消发布多路本地指定音视频流

Declared In

RCRTCLocalUser.h

– unpublishDefaultLiveStreams:

取消发布本地默认音视频流,直播模式专用

- (void)unpublishDefaultLiveStreams:(nullable RCRTCOperationCallback)completion

Parameters

completion

取消发布完成回调 @discussion 取消发布默认音视频流,此接口仅直播模式的主播可用, 即 RCRTCRoomType 为 RCRTCRoomTypeLive 可用

@remarks 资源管理

Discussion

取消发布本地默认音视频流,直播模式专用

Declared In

RCRTCLocalUser.h

– unpublishLiveStream:completion:

取消发布本地指定音视频流,直播模式专用

- (void)unpublishLiveStream:(nullable RCRTCOutputStream *)stream completion:(nullable RCRTCOperationCallback)completion

Parameters

stream

取消发布的音视频流

completion

发布的音视频流结果 @discussion 取消发布音视频流,此接口仅直播模式的主播可用, 即 RCRTCRoomType 为 RCRTCRoomTypeLive 可用

@remarks 资源管理

Discussion

取消发布本地指定音视频流,直播模式专用

Declared In

RCRTCLocalUser.h

– subscribeStream:tinyStreams:completion:

订阅多路远端指定音视频流

- (void)subscribeStream:(nullable NSArray<RCRTCInputStream*> *)avStreams tinyStreams:(nullable NSArray<RCRTCInputStream*> *)tinyStreams completion:(nullable RCRTCOperationCallback)completion

Parameters

avStreams

普通流

tinyStreams

需要携带小流的流数组

completion

完成的回调 @discussion 订阅流

@remarks 资源管理

Discussion

订阅多路远端指定音视频流

同一个流只能填写在 avStreams 或 tinyStreams 中的一个数组中

Declared In

RCRTCLocalUser.h

– subscribeLiveUrl:streamType:completion:

观众订阅合流资源

- (void)subscribeLiveUrl:(nullable NSString *)liveUrl streamType:(RCRTCAVStreamType)streamType completion:(nullable RCRTCLiveUrlCallback)completion

Parameters

liveUrl

主播直播的 liveUrl (针对 4x版本的主播兼容方案)

streamType

需要具体订阅的媒体类型

completion

完成的回调, 会依次回调合流的 RCRTCInputStream, 根据 streamType 区分是音频流还是视频流, 如主播发布了音视频流, 此回调会回调两次, 分别为音频的 RCRTCInputStream, 和视频的 RCRTCInputStream 。 @discussion 仅直播模式可用, 作为观众, 直接观看主播的直播, 通过传入主播的 url, 仅观众端可用,此接口可具体订阅音频流或视频流或大小流 Added from 5.1.0

@remarks 媒体流操作

Discussion

观众订阅合流资源

Declared In

RCRTCLocalUser.h

– unsubscribeStream:completion:

取消订阅远端指定音视频流

- (void)unsubscribeStream:(nullable RCRTCInputStream *)stream completion:(nullable RCRTCOperationCallback)completion

Parameters

stream

音视频流

completion

音视频流结果 @discussion 取消订阅音视频流

@remarks 资源管理

Discussion

取消订阅远端指定音视频流

Declared In

RCRTCLocalUser.h

– unsubscribeStreams:completion:

取消订阅多路远端指定音视频流

- (void)unsubscribeStreams:(nullable NSArray<RCRTCInputStream*> *)streams completion:(nullable RCRTCOperationCallback)completion

Parameters

streams

音视频流集合

completion

音视频流结果 @discussion 取消订阅多路音视频流

@remarks 资源管理

Discussion

取消订阅多路远端指定音视频流

Declared In

RCRTCLocalUser.h

– subscribeStreams:tinyStreams:unsubscribeStreams:completion:

同时订阅+取消订阅多路远端指定音视频流

- (void)subscribeStreams:(nullable NSArray<RCRTCInputStream*> *)subStreams tinyStreams:(nullable NSArray<RCRTCInputStream*> *)subTinyStreams unsubscribeStreams:(nullable NSArray<RCRTCInputStream*> *)unsubStreams completion:(nullable RCRTCOperationCallback)completion

Parameters

subStreams

普通音视频流列表

subTinyStreams

需要携带小流的流数组

unsubStreams

取消订阅的音视频数组

completion

完成的回调 @discussion 订阅+取消订阅多路远端指定音视频流

@remarks 资源管理

Discussion

同时订阅+取消订阅多路远端指定音视频流

在订阅时, 同一个流只能填写在 subStreams 或 subTinyStreams 中的一个数组中 订阅列表与取消订阅列表不能存在重复的音视频流

Declared In

RCRTCLocalUser.h

– requestJoinOtherRoom:userId:autoMix:extra:completion:

向指定用户发送跨房间连麦请求

- (void)requestJoinOtherRoom:(nullable NSString *)inviteeRoomId userId:(nullable NSString *)inviteeUserId autoMix:(BOOL)autoMix extra:(nullable NSString *)extra completion:(nullable RCRTCOperationCallback)completion DEPRECATED_MSG_ATTRIBUTE ( "use requestRoomPK:forKey:userId:autoMix:extra:completion: API instead" )

Parameters

inviteeRoomId

被邀请人所在房间号

inviteeUserId

被邀请人userId

autoMix

是否将被邀请人音视频资源合流到邀请人房间中

extra

附加信息, 可随消息发送给被邀请人

completion

完成的回调 @discussion 仅供连麦使用

@remarks 资源管理

Discussion

向指定用户发送跨房间连麦请求

Declared In

RCRTCLocalUser.h

– requestRoomPK:userId:autoMix:extra:completion:

向指定用户发送PK连麦请求

- (void)requestRoomPK:(nullable NSString *)inviteeRoomId userId:(nullable NSString *)inviteeUserId autoMix:(BOOL)autoMix extra:(nullable NSString *)extra completion:(nullable RCRTCOperationCallback)completion

Parameters

inviteeRoomId

被邀请人所在房间号

inviteeUserId

被邀请人userId

autoMix

是否将被邀请人音视频资源合流到邀请人房间中

extra

附加信息, 可随消息发送给被邀请人

completion

完成的回调 @discussion 仅供连麦使用

@remarks 资源管理

Discussion

向指定用户发送PK连麦请求

Declared In

RCRTCLocalUser.h

– cancelRequestJoinOtherRoom:userId:extra:completion:

取消正在进行中的跨房间连麦请求

- (void)cancelRequestJoinOtherRoom:(nullable NSString *)inviteeRoomId userId:(nullable NSString *)inviteeUserId extra:(nullable NSString *)extra completion:(nullable RCRTCOperationCallback)completion DEPRECATED_MSG_ATTRIBUTE ( "use cancelRequestJoinPK:userId:extra:completion: API instead" )

Parameters

inviteeRoomId

被邀请人所在房间号

inviteeUserId

被邀请人userId

extra

附加信息, 可随消息发送给被邀请人

completion

完成的回调 @discussion 仅供连麦使用

@remarks 资源管理

Discussion

取消正在进行中的跨房间连麦请求

Declared In

RCRTCLocalUser.h

– cancelRequestJoinPK:userId:extra:completion:

取消正在进行中的PK连麦请求

- (void)cancelRequestJoinPK:(nullable NSString *)inviteeRoomId userId:(nullable NSString *)inviteeUserId extra:(nullable NSString *)extra completion:(nullable RCRTCOperationCallback)completion

Parameters

inviteeRoomId

被邀请人所在房间号

inviteeUserId

被邀请人userId

extra

附加信息, 可随消息发送给被邀请人

completion

完成的回调 @discussion 仅供连麦使用

@remarks 资源管理

Discussion

取消正在进行中的PK连麦请求

Declared In

RCRTCLocalUser.h

– responseJoinOtherRoom:userId:agree:autoMix:extra:completion:

响应跨房间连麦请求

- (void)responseJoinOtherRoom:(nullable NSString *)inviterRoomId userId:(nullable NSString *)inviterUserId agree:(BOOL)agree autoMix:(BOOL)autoMix extra:(nullable NSString *)extra completion:(nullable RCRTCOperationCallback)completion DEPRECATED_MSG_ATTRIBUTE ( "use responseRoomPK:userId:agree:autoMix:extra:completion: API instead" )

Parameters

inviterRoomId

邀请人所在的房间号

inviterUserId

邀请人userId

agree

是否同意加入副房间

autoMix

是否将邀请人音视频资源合流到被邀请人(响应邀请的人)房间中

extra

附加信息, 可随消息发送给邀请人

completion

完成的回调 @discussion 取消订阅多路音视频流

@remarks 资源管理

Discussion

响应跨房间连麦请求

Declared In

RCRTCLocalUser.h

– responseRoomPK:userId:agree:autoMix:extra:completion:

响应PK连麦请求

- (void)responseRoomPK:(nullable NSString *)inviterRoomId userId:(nullable NSString *)inviterUserId agree:(BOOL)agree autoMix:(BOOL)autoMix extra:(nullable NSString *)extra completion:(nullable RCRTCOperationCallback)completion

Parameters

inviterRoomId

邀请人所在的房间号

inviterUserId

邀请人userId

agree

是否同意加入副房间

autoMix

是否将邀请人音视频资源合流到被邀请人(响应邀请的人)房间中

extra

附加信息, 可随消息发送给邀请人

completion

完成的回调 @discussion 取消订阅多路音视频流

@remarks 资源管理

Discussion

响应PK连麦请求

Declared In

RCRTCLocalUser.h

– quitRoomPK:completion:

结束PK连麦

- (void)quitRoomPK:(nullable NSString *)roomId completion:(nullable RCRTCOperationCallback)completion

Parameters

roomId

副房间 Id

completion

完成的回调 @discussion 通知所有连麦用户结束连麦

@remarks 资源管理

Discussion

结束PK连麦

Declared In

RCRTCLocalUser.h

– switchToAudienceOnSucceed:onFailed:onKicked:

主播切换到观众

- (void)switchToAudienceOnSucceed:(nullable void ( ^ ) ( void ))onSucceed onFailed:(nullable void ( ^ ) ( RCRTCCode code ))onFailed onKicked:(nullable void ( ^ ) ( void ))onKicked

Parameters

onSucceed

切换成功的回调。

onFailed

切换失败会回调,但不影响当前角色继续音视频。

onKicked

切换失败会回调,SDK内部会退出房间并清理所有资源,该用户只能重新加入房间才能继续音视频。

@discussion 当前角色为主播,切换角色到观众,仅限主播使用。 如果当前用户加入了 RCRTCOtherRoom 切换为观众时,RTC SDK 内部会帮其退出所有 RCRTCOtherRoom。 Added from 5.1.9

Discussion

主播切换到观众

Declared In

RCRTCLocalUser.h

– switchToBroadcaster:onSucceed:onFailed:onKicked:

观众切换到主播

- (void)switchToBroadcaster:(NSArray<RCRTCOutputStream*> *)publishStreams onSucceed:(nullable void ( ^ ) ( RCRTCLiveInfo *liveInfo ))onSucceed onFailed:(nullable void ( ^ ) ( RCRTCCode code ))onFailed onKicked:(nullable void ( ^ ) ( void ))onKicked

Parameters

publishStreams

切换成主播后需要发布的流。

onSucceed

切换成功的回调

onFailed

切换失败会回调,但不影响当前角色继续音视频。

onKicked

切换失败会回调,SDK内部会退出房间并清理所有资源,该用户只能重新加入房间才能继续音视频。

@discussion 观众切换角色到主播,仅限观众使用。 Added from 5.1.9

Discussion

观众切换到主播

Declared In

RCRTCLocalUser.h

– setEnableSEI:completion:

设置开启 SEI 功能

- (void)setEnableSEI:(BOOL)enable completion:(void ( ^ ) ( BOOL isSuccess , RCRTCCode errCode ))completion

Parameters

enable

YES 开启,NO 不开启,默认 NO

completion

开启结果的回调

Discussion

设置开启 SEI 功能

开启 SEI 功能观众身份调用无效,观众不允许发布流,所以不具备 SEI 能力。 Added from 5.2.5

Declared In

RCRTCLocalUser.h

– sendSEI:

发送媒体增强补充信息

- (RCRTCCode)sendSEI:(NSString *)SEI

Parameters

SEI

数据字符

Return Value

0 成功,非 0 失败,返回具体错误码 Added from 5.2.5

Discussion

发送媒体增强补充信息

此接口可在开发者推流传输音视频流数据并且[setEnableSEI] 开启SEI 功能的同时,发送流媒体增强补充信息来同步一些其他附加信息。 一般如同步音乐歌词或视频画面精准布局等场景,可选择使用发送 SEI。当推流方发送 SEI 后,拉流方可通过 RCRTCRoomEventDelegate 监听 [didReceiveSEI] & [didReceiveLiveStreamSEI] 的回调获取 SEI 内容。由于 SEI 信息跟随视频帧,由于网络问题有可能丢帧,因此 SEI 信息也有可能丢,为解决这种情况,应该在限制频率内多发几次。限制频率:1秒钟不要超过30次。SEI 数据长度限制为 4096 字节。

Declared In

RCRTCLocalUser.h