【发布时间】:2017-09-22 22:49:08
【问题描述】:
我一直在查看适用于 IOS 的 facebook SDK,但我无法真正得到可靠的答案。所以我在这里问,天气是否可以使用 swift 在我的 IOS 应用程序中流式传输实时 Facebook 视频或 youtube 视频?如果是的话,请随时给我一些提示或分享好的阅读和参考资料 天呐
【问题讨论】:
标签: ios swift facebook live-streaming youtube-data-api
我一直在查看适用于 IOS 的 facebook SDK,但我无法真正得到可靠的答案。所以我在这里问,天气是否可以使用 swift 在我的 IOS 应用程序中流式传输实时 Facebook 视频或 youtube 视频?如果是的话,请随时给我一些提示或分享好的阅读和参考资料 天呐
【问题讨论】:
标签: ios swift facebook live-streaming youtube-data-api
要将 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()
}
【讨论】: