本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!