通过阅读本文,您可以了解超级小班课iOS端的集成操作。
环境要求
iOS端具体环境要求,更多信息,请参见使用限制。
前提条件
操作步骤
Demo目录结构说明
RTC把业务代码封装到RTCSmallClass的库中,因此只需在Podfile中指定RTCSmallClass库的路径,RTCSmallClass就可以以本地第三方库的形式移植到其他项目中。如下所示:
pod 'RTCSmallClass', :path => '../RTCSmallClass'
## pod 'RTCSmallClass' 表示项目依赖RTCSmallClass库
## path => './RTCSmallClass' 表示RTCSmallClass库的位置(相对于Podfile文件)
RTCSmallClass组件库目录说明,如下所示:
文件名 | 说明 |
---|---|
RTCSmallClass.podspec | 组件的描述文件。 |
RTCSmallClass.bundle | 存放资源的bundle。 |
SmallClassLogin | 登录页。 |
SmallClassMainController | 通话页。 |
SmallClassGroupMemberController | 小组成员页。 |
API说明
API | 描述 |
---|---|
sharedInstance | 获取单例对象。 |
destorySharedInstance | 销毁实例对象。 |
login | 加入房间。 |
logout | 退出房间。 |
muteLocalCamera | 切换是否停止发布本地视频麦。 |
muteLocalMic | 切换是否停止发布本地音频。 |
switchCamera | 切换摄像头。 |
getUserInfo | 获取用户信息。 |
startPreview | 开始预览。 |
stopPreview | 停止预览。 |
startPublish | 开始推流。 |
stopPublish | 停止推流。 |
getRemoteUserList | 获取远端用户列表。 |
API | 描述 |
---|---|
onJoin | 用户上线通知。 |
onLeave | 用户下线通知。 |
onOccurError | SDK报错。 |
onOccurWarning | SDK警告。 |
onRoomDestroy | 房间被销毁的回调。 |
onSDKError | SDK报错,需要销毁实例。 |
onJoinChannelResult | 加入房间通知。 |
onLeaveChannelResult | 离开房间通知。 |
onNetworkQualityChanged | 网络状态回调。 |
onUserVideoMuted | 用户muteVideo通知。 |
onUserAudioMuted | 用户muteAudio通知。 |
onSubscribeResult | 订阅成功回调。 |
onUserSpeaking | 判断用户是否在说话。 |
onRemoteTraceAvaliable | 当订阅情况发生变化时的回调。 |
功能实现接口
- sharedInstance:获取单例对象。
/** * 获取单例 */ [RTCSmallClass sharedInstance];
- destorySharedInstance:毁单例对象。
/// 销毁RTCSDK - (void)destroySharedInstance;
- login:加入房间。
/// 加入频道 /// @param channel 频道 /// @param userName 用户昵称 - (void)login:(NSString *)channel userName:(NSString *)userName;
- logout:退出房间。
/// 离开所有频道 - (void)logout;
- muteLocalCamera:切换是否停止发布本地视频。
/// 禁用摄像头 /// @param mute 是否禁用 /// @param channel 频道 - (int)muteLocalCamera:(BOOL)mute channel:(NSString *)channel;
- muteLocalMic:切换是否停止发布本地音频。
/// 静音 /// @param mute 是否静音 /// @param channel 频道 - (int)muteLocalMic:(BOOL)mute channel:(NSString *)channel;
- switchCamera:设置摄像头。
/// 旋转摄像头 - (int)switchCamera;
- getUserInfo:获取用户信息。
/// 获取用户信息 /// @param uid 用户id /// @param channel 频道 - (NSDictionary *)getUserInfo:(NSString *)uid channel:(NSString *)channel;
- startPreview:开始预览。
/// 开始本地预览 /// @param preview 预览的view - (void)startPreview:(UIView *)preview;
- stopPreview:停止预览。
/// 停止本地预览 - (void)stopPreview;
- startPublish:开始推流。
/// 开始推流 /// @param channel 频道 - (void)startPublish:(NSString *)channel;
- stopPublish:停止推流。
/// 停止推流 /// @param channel 频道 - (void)stopPublish:(NSString *)channel;
- getRemoteUserList:获取远端用户列表。
/// 获取某个频道远端用户列表 /// @param channel 频道 - (NSArray *)getRemoteUserList:(NSString *)channel;
回调接口
- onJoin:用户上线通知。
/// 远端用户加入频道 /// @param channel 频道 /// @param uid 用户id - (void)channel:(NSString *)channel onJoin:(NSString *)uid;
- onLeave:用户下线通知。
/// 远端用户离开频道 /// @param channel 频道 /// @param uid 用户id - (void)channel:(NSString *)channel onLeave:(NSString *)uid;
- onOccurError:SDK报错。
/// 错误码 /// @param channel 频道 /// @param error 错误码 - (void)channel:(NSString *)channel onOccurError:(int)error;
- onOccurWarning:SDK警告。
/// 警告 /// @param channel 频道 /// @param warn 警告码 - (void)channel:(NSString *)channel onOccurWarning:(int)warn;
- onRoomDestroy:房间被销毁的回调。
/// 房间被销毁通知 - (void)onRoomdestroy;
- onSDKError:SDK报错,需要销毁实例。
/// sdk严重错误 需要销毁引擎 /// @param channel 频道 /// @param error 错误码 - (void)channel:(NSString *)channel onSDKError:(int)error;
- onJoinChannelResult:加入房间通知。
/// 加入频道 /// @param channel 频道 /// @param result 结果 - (void)channel:(NSString *)channel onJoinChannelResult:(int)result;
- onLeaveChannelResult:离开房间通知。
/// 离开频道 /// @param channel 频道 /// @param result 结果 - (void)channel:(NSString *)channel onLeaveChannelResult:(int)result ;
- onNetworkQualityChanged:网络状态。
/// 网络变化判断 /// @param uid 用户id /// @param upQuality 上行网络质量 /// @param downQuality 下行网络质量 - (void)onNetworkQualityChanged:(NSString *)uid upNetworkQuality:(AliRtcNetworkQuality)upQuality downNetworkQuality:(AliRtcNetworkQuality)downQuality;
- onUserVideoMuted:用户muteVideo通知。
/// 用户是否禁用摄像头 /// @param channel 频道 /// @param uid 用户id /// @param isMute 是否禁用 - (void)channel:(NSString *)channel onUserVideoMuted:(NSString *)uid videoMuted:(BOOL)isMute;
- onUserAudioMuted:用户muteAudio通知。
/// 用户是否静音 /// @param channel 频道 /// @param uid 用户id /// @param isMute 用户是否静音 - (void)channel:(NSString *)channel onUserAudioMuted:(NSString *)uid audioMuted:(BOOL)isMute;
- onSubscribeResult:订阅成功。
/// 订阅成功 /// @param channel 频道 /// @param uid 用户id /// @param result 结果 - (void)channel:(NSString *)channel onSubscribe:(NSString *)uid result:(BOOL)result;
- onUserSpeaking:判断用户是否在说话。
/// 用户说话状态改变 /// @param channel 频道 /// @param uid 用户id /// @param speaking 是否正在说话 /// @param name 用户昵称 - (void)channel:(NSString *)channel onUserSpeaking:(NSString *)uid speaking:(BOOL) speaking displayName:(NSString *)name;
- onRemoteTraceAvaliable:当订阅情况发生变化时的回调。
/// 远端流变化 /// @param channel 频道 /// @param uid 用户id /// @param abaliable 是否可用 - (void)channel:(NSString *)channel onRemoteTrace:(NSString *)uid avaliable:(BOOL)abaliable;