我很抱歉再次回到这个话题,但我真的很沮丧!我已经阅读了我发现的每一种资源,在网上搜索,但我无法对我的问题做出明确的答案。
问题描述
我正在创建一个带有phonegap 1.0的iphone应用程序。在这个应用程序中,一个选项卡专门用于来自我的YouTube频道的RSS提要,我希望我的用户能够在点击特定条目后播放这些视频。
问题:有可能吗?最好的解决方案是在应用程序内播放视频,但显示缩略图图像并将用户重定向到原生YouTube应用程序也是可以接受的(即使在这种情况下,我希望在youtube完成播放视频时控件返回到原始应用程序)。
尝试过的解决方案
在网上搜索我找到了几个解决方案,人们说这些解决方案适用于他们,但它们都不适合我!
使用“对象”标签,我最终得到一个白色的屏幕
<object id="video" width="296" height="100%" data="http://www.youtube.com/v/gDjb9RVMF4c" type="application/x-shockwave-flash">
<param name="allowfullscreen" value="true" />
<param name="src" value="http://www.youtube.com/v/gDjb9RVMF4c" />
</object>
使用“embed”标签,我最终得到一个白色的屏幕
<embed src="http://www.youtube.com/v/gDjb9RVMF4c" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="280" height="100%"></embed>
我也试过一个“视频”标签,但就我所知,这仍然是不可能的。
如果我错过了已经在某处写过的解决方案,我真的很抱歉,但请相信我......我在做完作业之前就问:-) THX !!
答案 0 :(得分:5)
这是一个很好的教程,保存了我的一天
http://eisabainyo.net/weblog/2012/01/24/embed-a-youtube-video-iframe-in-phonegap-app/
我也发布一些代码以便快速访问。
<html>
<head>
<title>YouTube video</title>
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<script src="phonegap-1.2.0.js"></script>
</head>
<body>
<iframe width="560" height="315" src="http://www.youtube.com/embed/9HDeEbJyNK8" frameborder="0" allowfullscreen></iframe>
</body>
</html>
然后在Phonegap.plist中进行以下更改
MediaPlaybackRequiresUserAction: NO
AllowInlineMediaPlayback: YES
OpenAllWhitelistURLsInWebView: YES
ExternalHosts
*.youtube.com
*.ytimg.com
视频也将在您的模拟器上播放。
答案 1 :(得分:4)
除了使用<iframe> ... </iframe>
之外,您还需要在OpenAllWhitelistURLsInWebView
中将属性YES
设置为PhoneGap.plist
。这将在PhoneGap应用程序本身内显示和播放视频。它经过了试验和测试。
答案 2 :(得分:3)
您可以尝试将YouTube视频嵌入为iframe,我相信这是现在推荐的方式:
http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html
<iframe src="http://www.youtube.com/embed/VIDEO_ID" class="youtube-player" type="text/html" width="640" height="385" frameborder="0">
</iframe>
答案 3 :(得分:0)
这是我最终在我的应用中使用的component。在YouTube iFrame API的帮助下完成。