直播连麦/视频会议
更新时间:2021-05-26
直播连麦场景介绍
主播观众场景主要适合于主流的直播场景,一个主播,N 个观众,适用于秀场直播和在线教育等场景。
主播端实现
- 初始化和 SDK 鉴权
- 初始化渲染视图
- 开始采集本地摄像头
- 登录房间
- 推送音视频流
[LVRTCEngine initSdk];
[[LVRTCEngine sharedInstance] auth:appId
skStr:sk
userId:userId
completion:^(LVErrorCode code) {
}];
[[LVRTCEngine sharedInstance] startCapture];
// view 信息和用户绑定
[[LVRTCEngine sharedInstance] addDisplayView:localView];
[[LVRTCEngine sharedInstance] loginRoom:userId roomId:roomId isHost:isHost isOnlyAudio:NO delegate:self];
接收登陆房间成功事件
- (void)OnEnterRoomComplete:(LVErrorCode)result users:(nullable NSArray<LVUser *> *)users
[[LVRTCEngine sharedInstance] startPublishing];
观众端实现
- 初始化和鉴权 SDK
- 登录房间获取主播信息
- 播放主播视频流
- 添加渲染视图
[LVRTCEngine initSdk];
[[LVRTCEngine sharedInstance] auth:appId
skStr:sk
userId:userId
completion:^(LVErrorCode code) {
}];
[[LVRTCEngine sharedInstance] loginRoom:userId roomId:roomId isHost:isHost isOnlyAudio:NO delegate:self];
接收登陆房间成功事件
event: - (void)OnEnterRoomComplete:(LVErrorCode)result users:(nullable NSArray<LVUser *> *)users
[[LVRTCEngine sharedInstance] startPlayingStream:userId];
// view 信息和用户绑定
[[LVRTCEngine sharedInstance] addDisplayView:remoteView];
连麦功能实现
- 观众端调用推送音视频流
- 观众端设置本地渲染视图
- 观众端开启摄像头
- 主播端播放观众音视频流
- 主播设置对应渲染视图
[[LVRTCEngine sharedInstance] startPublishing];
// view 信息和用户绑定
[[LVRTCEngine sharedInstance] addDisplayView:localView];
[[LVRTCEngine sharedInstance] startCapture];
主播接收有人加入事件
- (void)OnAddRemoter:(nonnull LVUser *)user
[[LVRTCEngine sharedInstance] startPlayingStream:userId];
// view 信息和用户绑定
[[LVRTCEngine sharedInstance] addDisplayView:remoteView];
音视频会议
音视频会议主要介绍使用 LinkV 音视频 SDK 实现多人音视频实时互动场景,所有成员默认都正常发言
- 初始化和鉴权 SDK
- 推送本地音视频数据
- 设置本地视频数据渲染视图
- 登录房间获取房间内所有成员信息,监听房间内事件
- 播放房间内成员音视频数据
- 设置渲染视图
注:有成员推流或者取消推流时会触发成员加入和离开的回调
/// 有成员加入的通知
/// @param user 成员列表
- (void)OnAddRemoter:(LVUser *)user;
/// 有成员离开的通知
/// @param uid 离开用户 ID
- (void)OnDeleteRemoter:(NSString*)uid;
音视频会议实现
[LVRTCEngine initSdk];
[[LVRTCEngine sharedInstance] auth:appId
skStr:sk
userId:userId
completion:^(LVErrorCode code) {
}];
[[LVRTCEngine sharedInstance] startCapture];
// view 信息和用户绑定
[[LVRTCEngine sharedInstance] addDisplayView:localView];
[[LVRTCEngine sharedInstance] loginRoom:userId roomId:roomId isHost:isHost isOnlyAudio:NO delegate:self];
//接收登陆房间成功事件
- (void)OnEnterRoomComplete:(LVErrorCode)result users:(nullable NSArray<LVUser *> *)users
[[LVRTCEngine sharedInstance] startPlayingStream:userId];
[[LVRTCEngine sharedInstance] addDisplayView:remoteView];
// 监听成员加入和离开的回调,根据条件选择是否需要播放或取消播放某位成员音视频
- (void)OnAddRemoter:(nonnull LVUser *)user
[[LVRTCEngine sharedInstance] startPlayingStream:userId];
[[LVRTCEngine sharedInstance] addDisplayView:remoteView];
- (void)OnDeleteRemoter:(nonnull NSString *)uid
[[LVRTCEngine sharedInstance] stopPlayingStream:userId];
[[LVRTCEngine sharedInstance] removeDisplayView:remoteView];