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

文章目录

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文件里
swift 复制代码
# Uncomment the next line to define a global platform for your project
 platform :ios, '13.0'

target 'XXX' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

    # Pods for XXX
    pod 'SnapKit'
    pod 'Moya'
    pod 'IQKeyboardManagerSwift'
    pod 'SmartCodable'
    # pod 'XHToastSwift'
  # AWS
    pod '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'
            end
        end
    end
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings["ONLY_ACTIVE_ARCH"] = "NO"
        end
    end
    installer.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"] = $iOSVersion
    end
end
  • 如下,是demo能正常直播时的打印log,我选的是Connect as Viewer
swift 复制代码
经过: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秒
swift 复制代码
        // Create the video view
        let seconds = 2.0
        DispatchQueue.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)
        }
swift 复制代码
extension ChannelConfigurationViewController: SignalClientDelegate {
    func signalClientDidConnect(_: SignalingClient) {
        signalingConnected = true
        print("经过:\(#function)")
    }
  • 在我自己的项目里我没有等2秒,直接连上后再加载直播界面
swift 复制代码
extension VideoVC: SignalClientDelegate {
    func signalClientDidConnect(_: SignalingClient) {
        MyPrint("经过:\(#function)")
        signalingConnected = true
        //必须要连接上后再加载视频
        loadVideoView()
    }
相关推荐
ssshooter17 小时前
Tauri 踩坑 appLink 修改后闪退
前端·ios·rust
二流小码农21 小时前
鸿蒙开发:上传一张参考图片便可实现页面功能
android·ios·harmonyos
开心就好20251 天前
UniApp开发应用多平台上架全流程:H5小程序iOS和Android
后端·ios
开心就好20252 天前
免 Xcode 的 iOS 开发新选择?聊聊一款更轻量的 iOS 开发 IDE kxapp 快蝎
后端·ios
恋猫de小郭2 天前
Apple 的 ANE 被挖掘,AI 硬件公开,宣传的 38 TOPS 居然是"数字游戏"?
前端·人工智能·ios
忆江南2 天前
iOS 深度解析
flutter·ios
没有故事的Zhang同学2 天前
05-主题|事件响应者链@iOS-应用场景与进阶实践
ios
FeliksLv3 天前
尝试给Lookin 支持 MCP
ios
没有故事的Zhang同学3 天前
01-研究系统框架@Web@iOS | JavaScriptCore 框架:从使用到原理解析
ios
CocoaKier4 天前
苹果谷歌商店:如何监控并维护用户评分评论
ios·google·apple