无法在 UIWebView 中播放 Facebook 实时视频
Posted
技术标签:
【中文标题】无法在 UIWebView 中播放 Facebook 实时视频【英文标题】:Cannot play facebook Live Video in UIWebView 【发布时间】:2016-07-01 18:19:57 【问题描述】:我正在快速阅读来自 facebook Api 的实时视频。请求地址为:
https://graph.facebook.com/miPageID/live_videos
我得到的答案是一系列视频,每个视频都有这样的内容。
description = "视频描述"; "embed_html" = "https://www.facebook.com/video/embed?video_id=1041870252579934\" 宽度=\"400\" 高度=\"400\" 边框=\"0\">"; ID = 1041870255905313; "permalink_url" = "/1040317772727228/videos/1041870252571980/"; 状态=直播;
然后我在 UIWebView 中加载视频。如果视频已经发布,我可以毫无问题地看到它,但是当它处于实时模式时,我就看不到它了。
在 Safari 中,我得到与在 UIWebView 中相同的行为。这是一张图片,您可以看到我得到了什么。
Safari vs Chrome(在 chrome 中我可以看到,但在 safari 中看不到) https://c2.staticflickr.com/8/7425/27407837763_92d61270f2_b.jpg
有谁知道我该如何解决这个问题?也许是某个第三方库之类的。
对不起我的英语,非常感谢。
【问题讨论】:
【参考方案1】:视频直播是逐块流式传输的。任何块都是.ts
文件,其中TS 代表传输流。
在 ios 中要像播放普通视频一样播放实时视频,你需要做更多的工作。
Here 您可以阅读所有关于 HTTP Live Streaming 的 Apple 文档,以更好地了解它在 iOS 上的工作原理。 这不是一个简单的话题,确实有像this one 这样的付费框架可以用于此目的。
【讨论】:
【参考方案2】:您可以在 iOS 中使用 https://github.com/jgh-/VideoCore 进行 Facebook Live
self.vcSession = [[VCSimpleSession alloc] initWithVideoSize:CGSizeMake(854, 480) frameRate:30 bitrate:1000000 useInterfaceOrientation:NO];
[self.view addSubview:self.vcSession.previewView];
self.vcSession.previewView.frame = CGRectMake(40, 40, 320, 240);//self.view.bounds;
self.vcSession.delegate = self;
[self.vcSession startRtmpSessionWithURL:@"your rtmp:URL "andStreamKey:@"your stream key"];
其中 vcSeesion 是在 .h 文件中创建的 VCSsimpleSession 类的对象。
【讨论】:
虽然理论上这可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。以上是关于无法在 UIWebView 中播放 Facebook 实时视频的主要内容,如果未能解决你的问题,请参考以下文章
无法让 UIWebView 在 Xcode 中播放 .mp4