"在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的视频直播系统后续将持续更新直播主播添加声音特效(鼓掌、笑场、欢呼)、背景音乐、萌颜等更多的教程,欢迎关注本博主,会持续更新产品的相关资料。
声明:本篇文章为小编原创文章,转载请注明出处及作者。
原文地址:https://blog.51cto.com/14302750/2385234
时间: 2024-11-09 09:46:22