视频直播系统解决方案—是基于声网SDK实现的

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

猜你喜欢

转载自blog.51cto.com/14302750/2385234