“在2019年5G创新发展峰会暨中国联通全球产业链合作伙伴大会上,中国联通董事长王晓初正式宣布联通5G实验网开通。”

伴随5G的到来,网络流畅度的提升,视频直播系统将持续火爆,视频直播系统解决方案也得到了快速解决,用户体验直播的场景也将实现多元化。这样一来我们必将涉及到海外的用户。我们开发的直播软件系统是怎样让海外客户来体验直播热情的呢?下面我来介绍下我们的视频直播系统是基于声网SDK的直播、连麦技术实现:

1.初始化并设置代理:

AgoraRtcEngineKit *rtcEngine = [AgoraRtcEngineKit sharedEngineWithAppId:AgoraAppID delegate:self];

2.场景设置:直播

[rtcEngine setChannelProfile:AgoraChannelProfileLiveBroadcasting];
[rtcEngine enableDualStreamMode:YES];
[rtcEngine enableWebSdkInteroperability:YES];
[rtcEngine enableVideo];

3.设置本地视频视图并配置本地的视频显示设置(分辨率码率等设置)

AgoraVideoEncoderConfiguration *configuration =
[[AgoraVideoEncoderConfiguration alloc] initWithSize:AgoraVideoDimension640x480
frameRate:AgoraVideoFrameRateFps24
bitrate:AgoraVideoBitrateStandard
orientationMode:AgoraVideoOutputOrientationModeAdaptative];
[rtcEngine setVideoEncoderConfiguration:configuration];
VideoSession *localSession = [VideoSession localSession];
[self.videoSessions addObject:localSession];
[rtcEngine setupLocalVideo:localSession.canvas];

4.设置角色(主播)

[rtcEngine setClientRole:AgoraClientRoleBroadcaster];

5.开启预览

[rtcEngine startPreview];

6.开始直播

int code = [rtcEngine joinChannelByToken:nil channelId:@"" info:nil uid:0 joinSuccess:nil];
if (code == 0) {
//开播成功
} else {
//开播失败,根据code值校验设置,重新开播
}

7.用户进入主播房间后可发起连麦请求,主播收到用户远程画面,更新UI

- (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstRemoteVideoFrameOfUid:(NSUInteger)uid size:(CGSize)size elapsed:(NSInteger)elapsed {
//收到用户远程视频
}

8.断麦后响应用户离开通知,更新UI

- (void)rtcEngine:(AgoraRtcEngineKit *)engine didOfflineOfUid:(NSUInteger)uid reason:(AgoraUserOfflineReason)reason {
//收到断麦通知
}

以上基本实现了视频直播系统在主播开播,用户进房间、发起连麦、下麦等基本操作流程,完美的整理出一套视频直播系统解决方案。基于声网SDK的视频直播系统后续将持续更新直播主播添加声音特效(鼓掌、笑场、欢呼)、背景音乐、萌颜等更多的教程,欢迎关注本博主,会持续更新产品的相关资料。