【问题标题】:how to embed youtube or facebook live streaming in my ios App ?如何在我的 ios 应用程序中嵌入 youtube 或 facebook 直播?
【发布时间】:2017-09-22 22:49:08
【问题描述】:

我一直在查看适用于 IOS 的 facebook SDK,但我无法真正得到可靠的答案。所以我在这里问,天气是否可以使用 swift 在我的 IOS 应用程序中流式传输实时 Facebook 视频或 youtube 视频?如果是的话,请随时给我一些提示或分享好的阅读和参考资料 天呐

【问题讨论】:

    标签: ios swift facebook live-streaming youtube-data-api


    【解决方案1】:

    要将 youtube 直播嵌入到您的 iOS 应用中,请使用以下命令:

       @IBOutlet weak var LiveStreamViewer: UIWebView!
       let channelID = "[channelID]"
    
       func loadLiveStream {
            guard
                let youtubeURL = URL(string: "https://www.youtube.com/embed?
                    live=1&channel=\(channelID)")
                else { return }
            LiveStreamViewer.loadRequest( URLRequest(url: youtubeURL) )
       }
    

    但是,如果您实际上没有流式传输,并且有人尝试播放视频,则使用此选项会在 WebView 中引发错误。要为此进行计划,请添加类似于以下功能的内容:

       let googleAPI = "[youtubeAPIKey]"
    
    
       func checkLive() {
           let liveChannel = URL(string: "https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=\(channelID)&type=video&eventType=live&key=\(googleAPI)")
           URLSession.shared.dataTask(with:liveChannel!, completionHandler: {(data, response, error) in
               guard let data = data, error == nil else { return }
    
               do {
                   let parsedData = try JSONSerialization.jsonObject(with: data, options: []) as! [String:Any]
                   let pageInfo = parsedData["pageInfo"] as! [String:Any]
    
                   print(pageInfo)
    
                   let currentState = pageInfo["totalResults"] as! Int
                   print(currentState)
    
                   if currentState == 0 {
                       print("No Stream Right Now")
                       self.LiveStreamViewer.isHidden = true
                       //DO SOMETHING TO LET THEM KNOW YOU ARENT STREAMING
                   } else {
                       print("Streaming")
                       self.LiveStreamViewer.isHidden = false
                       self.loadLiveStream()
                   }
    
               } catch let error as NSError {
                   print(error)
               }
           }).resume()
       }
    

    【讨论】:

    • 这是否需要用户登录他的 youtube 帐户?
    • 绝对是一个解决方案,但在配额成本方面非常昂贵。
    猜你喜欢
    • 2019-04-21
    • 2013-09-21
    • 2017-01-14
    • 2018-08-06
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2019-02-27
    相关资源
    最近更新 更多