iOS swift5 AWS直播 WebRTC SDK for iOS Kinesis Video Streams

2024-05-28 09:52

本文主要是介绍iOS swift5 AWS直播 WebRTC SDK for iOS Kinesis Video Streams,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1.官方文档
  • 2.github地址
  • 3.具体操作(本人已调试成功,并成功集成到项目里)
    • 3.1 下载官方demo,并且按官方文档的步骤来,跑通demo,在demo中可以正常直播
    • 3.2 看懂demo里的代码后,将demo里的代码移植到自己的项目里

1.官方文档

WebRTC SDK for iOS - AWS

2.github地址

Amazon Kinesis Video iOS WebRTC Sample - github

3.具体操作(本人已调试成功,并成功集成到项目里)

3.1 下载官方demo,并且按官方文档的步骤来,跑通demo,在demo中可以正常直播

请添加图片描述

  • 注意
  • demo需要注册,登录,登录成功后再点击直播

3.2 看懂demo里的代码后,将demo里的代码移植到自己的项目里

  • 如下,可以将demo里的Podfile文件直接拷贝到自己项目的Podfile文件里
# Uncomment the next line to define a global platform for your projectplatform :ios, '13.0'target 'XXX' do# Comment the next line if you don't want to use dynamic frameworksuse_frameworks!# Pods for XXXpod 'SnapKit'pod 'Moya'pod 'IQKeyboardManagerSwift'pod 'SmartCodable'# pod 'XHToastSwift'# AWSpod 'AWSCognitoIdentityProvider'pod 'AWSMobileClient'pod 'CommonCryptoModule'pod 'AWSKinesisVideo'pod 'AWSKinesisVideoSignaling'pod 'GoogleWebRTC', '~> 1.1'pod 'Starscream', '~> 3.0'end# AWS
post_install do |installer|installer.generated_projects.each do |project|project.targets.each do |target|target.build_configurations.each do |config|config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'endendendinstaller.pods_project.targets.each do |target|target.build_configurations.each do |config|config.build_settings["ONLY_ACTIVE_ARCH"] = "NO"endendinstaller.pods_project.build_configurations.each do |config|config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"config.build_settings["ONLY_ACTIVE_ARCH"] = "YES"config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = $iOSVersionend
end
  • 如下,是demo能正常直播时的打印log,我选的是Connect as Viewer
经过:signalClientDidConnect(_:)
经过:present(self.vc
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Received remote candidate from []
经过:Received remote sdp from []
经过:WebRTC checking state
经过:Generated local candidate
经过:Generated local candidate
经过:Setting remote sdp and sending answer.
经过:Received remote candidate from []
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:Generated local candidate
经过:WebRTC connected/completed state
  • 需要signalClientDidConnect后再加载直播界面,所以下面的代码中要等2秒
        // Create the video viewlet seconds = 2.0DispatchQueue.main.asyncAfter(deadline: .now() + seconds) {self.updateConnectionLabel()self.vc = VideoViewController(webRTCClient: self.webRTCClient!, signalingClient: self.signalingClient!, localSenderClientID: self.localSenderId, isMaster: self.isMaster, mediaServerEndPoint: endpoints["WEBRTC"] ?? nil)print("经过:present(self.vc")self.present(self.vc!, animated: true, completion: nil)}
extension ChannelConfigurationViewController: SignalClientDelegate {func signalClientDidConnect(_: SignalingClient) {signalingConnected = trueprint("经过:\(#function)")}
  • 在我自己的项目里我没有等2秒,直接连上后再加载直播界面
extension VideoVC: SignalClientDelegate {func signalClientDidConnect(_: SignalingClient) {MyPrint("经过:\(#function)")signalingConnected = true//必须要连接上后再加载视频loadVideoView()}

这篇关于iOS swift5 AWS直播 WebRTC SDK for iOS Kinesis Video Streams的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1010232

相关文章

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

速盾:直播 cdn 服务器带宽?

在当今数字化时代,直播已经成为了一种非常流行的娱乐和商业活动形式。为了确保直播的流畅性和高质量,直播平台通常会使用 CDN(Content Delivery Network,内容分发网络)服务器来分发直播流。而 CDN 服务器的带宽则是影响直播质量的一个重要因素。下面我们就来探讨一下速盾视角下的直播 CDN 服务器带宽问题。 一、直播对带宽的需求 高清视频流 直播通常需要传输高清视频

雷动WEBRTC产品

http://www.rtcpower.com/html/leidongwebrtc.html ; 1.前言      WebRTC是一项在浏览器内部进行实时视频和音频通信的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得一项技术。WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以

Apple quietly slips WebRTC audio, video into Safari's WebKit spec

转自:http://www.zdnet.com/article/apple-quietly-slips-webrtc-audio-video-into-safaris-webkit-spec/?from=timeline&isappinstalled=0 http://www.zdnet.com/article/apple-quietly-slips-webrtc-audio-video-

WebRTC-nack机制详解

1.NACK的含义 丢包重传(NACK)是抵抗网络错误的重要手段。NACK在接收端检测到数据丢包后,发送NACK报文到发送端;发送端根据NACK报文中的序列号,在发送缓冲区找到对应的数据包,重新发送到接收端。NACK需要发送端,发送缓冲区的支持。 WebRTC中支持音频和视频的NACK重传。我们这里只分析nack机制,不分析jitterbuffer或者neteq的更多实现。 2.WebRTC