无法在 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 StreamingApple 文档,以更好地了解它在 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

ios 12.2 无法播放 uiwebview 视频

UIWebView 视频播放获取开始播放和结束播放通知

UIWebView 拦截来自 javascript 音频播放器的“设置电影路径:”

在 UIWebView 中播放 facebook 视频

如何在 UIWebView 中同时播放两个视频