我可以在 UIWebView 内联(不是全屏)中播放 youtube 视频吗?
Posted
技术标签:
【中文标题】我可以在 UIWebView 内联(不是全屏)中播放 youtube 视频吗?【英文标题】:Can I play a youtube video in a UIWebView inline (not fullscreen)? 【发布时间】:2011-10-06 07:55:59 【问题描述】:我到处寻找如何做到这一点,但还没有找到答案。 是否可以在 iPhone 内联的 UIWebView 中播放 youtube 视频,即不是全屏? 我知道 iPhone 不支持 flash,但 youtube 支持 html5 并且有 h.264 视频,不是吗?那我不应该这样做吗?
我已将allowInlineMediaPlayback 设置为YES,但它仍会全屏播放。
【问题讨论】:
试试这个iphoneincubator.com/blog/audio-video/… 你必须改变帧大小属性来实现小 谢谢,但这个例子将全屏播放,而不是内联(尝试过)。 UIWebView 的 frame 已经比整个屏幕小了,所以 frame 不是这里的问题。 【参考方案1】:可以,你需要在 UIWebView 上设置属性
webView.allowsInlineMediaPlayback=YES;
并且您需要将 &playsinline=1 添加到 YouTube iframe 嵌入代码中。
<iframe webkit-playsinline src="https://www.youtube.com/embed/GOiIxqcbzyM?feature=player_detailpage&playsinline=1" frameborder="0"></iframe>
在运行 ios 6.1.2 的 iPhone 4S 上进行测试,效果非常棒。
【讨论】:
这是正确的——有了这两个设置,内联播放就可以在 iPhone 上运行。 你能用youtube的iFrame api显示代码吗?因为我想从某个时间运行视频 不知道你是什么意思? html (iFrame api) 中的第二行。 如果我理解正确,这需要一个“应用程序”(即访问 UIWebView,这似乎是一个浏览器类型的对象)——即它不是我可以在普通网页中利用的东西。那是对的吗?有没有办法强制 iOS 内联播放? (即我有一个视频,希望人们在看到某些队列时单击一个按钮......如果视频全屏播放,则不行)...... 不幸的是,您的假设是正确的。这在 iPhone 的 Safari 中不起作用。您需要使用 UIWebView 类创建自己的应用程序。但是它可以在 iPad 的 Safari 上运行。您也许可以使用自定义 html 5 播放器使其在 iPhone 上运行,但我从未尝试过。见***.com/questions/5438520/…【参考方案2】:allowsInlineMediaPlayback UIWebView 属性
布尔值,用于确定 HTML5 视频是内联播放还是使用本机全屏控制器。 (developer.apple.com)
您可以在 iPad 上使用此功能。在 iPhone 上没有这样的功能。如果您尝试在 iPhone 上使用 uiwebview 播放视频,它将以全屏模式播放。
【讨论】:
事实并非如此。 -allowsInlineMediaPlayback 可以在 iPhone 上使用,但您还必须在 HTML 视频标签中包含 webkit-playsinline 属性。请参阅 stringCode 的答案。 @MarcCharbonneau 这对 iOS 7 上的 iPhone 来说是真的吗?似乎强制全屏播放器 @matrosov,你好,我的朋友,但我想使用 HTML5 在 UIWebview 中播放视频,就像正在播放 vine app 视频一样。我如何在 iPhone 中实现它? 我也无法让它在带有 ios 7.1 的 iphone 上运行。有什么变化吗? 有人在 iOS 8.x 的 iPhone 上偶然发现了这一点吗?【参考方案3】:是的,您可以在“playsinline=1”的帮助下播放内嵌 UIWebView 本身的任何嵌入视频。
源代码如:
NSMutableString *html = [[NSMutableString alloc] initWithCapacity:1] ;
[html appendString:@"<html><head>"];
[html appendString:@"<style type=\"text/css\">"];
[html appendString:@"body "];
[html appendString:@"background-color: transparent;"];
[html appendString:@"color: white;"];
[html appendString:@""];
[html appendString:@"</style>"];
[html appendString:@"</head><body style=\"margin:0\">"];
[html appendString:@"<iframe webkit-playsinline width=\"300\" height=\"220\" src=\"http://www.ustream.tv/embed/23192315?html5ui&showtitle=false&playsinline=1\" frameborder=\"0\"></iframe>"];
[html appendString:@"</body></html>"];
[self.webViewRef loadHTMLString:html baseURL:nil];
【讨论】:
以上是关于我可以在 UIWebView 内联(不是全屏)中播放 youtube 视频吗?的主要内容,如果未能解决你的问题,请参考以下文章
在iOS 8中如何在UIWebView Player中接收全屏模式的通知?
UIWebView 流媒体 youtube 无法在 iPad 上全屏显示