如何在Android上的WebView中嵌入YouTube视频?

13

有人可以解释一下为什么我在Android手机中的webview里无法点击和播放YouTube视频吗?

我已经创建了一个非常简单的应用程序(它正在扩展,但不是立即),并且使用了Android SDK分配了一个Web视图。

Web视图的其余部分按预期工作(文本、图像、CSS等),但是YouTube片段将不会显示,它们只会显示为黑色或白色矩形(视频嵌入位置)。

我们在iPhone应用程序中使用相同的视图来显示内容,没有任何问题。

这是使用基本的flash嵌入代码,Safari浏览器在iPhone上将它们转换为H.264,并在QuickTime中很好地播放。

Android能做同样的事情吗?

这里是一个示例的嵌入代码....

<object width="120" height="73">
    <param name="movie" value="http://www.youtube.com/watch?v=ZVYIBIlTIQs&feature=youtube_gdata"></param>
    <param name="allowFullScreen" value="true"></param>
    <param name="allowscriptaccess" value="always"></param>
    <embed src="http://www.youtube.com/watch?v=ZVYIBIlTIQs&feature=youtube_gdata" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="120" height="73"></embed>
</object>
3个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
14

我不确定这是否是您需要的内容,但是我希望以下内容能够有所帮助。

您可以使用YouTube提供的iframe方法来播放其视频。如果浏览器支持html5,则会使用html5来显示视频;否则将使用flash进行播放。

您可以使用以下代码作为示例 <iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/bIPcobKMB94" frameborder="0">

在上述示例中,视频id为bIPcobKMB94。您可以更改此id并显示您自己的视频。

您可以在此处访问一个实时示例。

有关YouTube iframe的更多信息,请参见此处。

YouTube HTML5视频播放器


为什么我使用iframe无法使其工作?这是我的代码:<iframe class='youtube-player' type='text/html' width='480' height='360' src='http://www.youtube.com/embed/OWRHCcVplBQ?version=3&amp;hl=en_US' frameborder='0'/>。有人能给我一个提示吗?实际上,我没有看到使用iframe或object标签之间的任何区别。我正在使用三星Galaxy S FROYO.VUVKD1(2.6.32.9)。 - newman
@miliu,你有最新版本的Flash吗?因为Android支持Flash,所以你不需要使用HTML5版本来查看它,而是使用Flash。如果你使用的是旧版Flash,可能会出现错误。 - Sotiris
3
我刚在手机上安装了最新版本的Flash(v11),但仍然遇到同样的问题:我可以看到带有播放三角形的初始画面。当我点击三角形时,它开始旋转,一两秒后,区域就变成黑色了。没有错误或其他提示。顺便说一下,包括YouTube在内的所有其他视频播放器都能正常工作。 - newman
好的,我终于成功了。正如我所发现的,我唯一缺少的是 _webView.getSettings().setPluginState(PluginState.ON_DEMAND)。即使我卸载了Adobe Flash Player(v11),它仍然可以工作。 - newman
1
@miliu,你能发一下你的代码吗?我还是遇到了你提到的问题,例如只看到初始帧。 - Efi MK
显示剩余2条评论

2

除非用户使用Froyo,否则这将是不可能的。然而,只要用户安装了YouTube应用程序(我相信大多数手机都是标配),那么您可以包含一个指向YouTube视频的链接,Android将识别它并使用YouTube应用程序打开它。这不像嵌入式那样优雅,但却更可靠。


0

您需要安装Flash播放器,该播放器仅适用于Android 2.2(Froyo)及以上版本。


1
好的,你知道在Android中嵌入YouTube剪辑的其他方法吗?使用HTML5需要用户注册Beta计划,这并不理想。 - Simon Hume
所以你想在Webview中显示多个视频,而不仅仅是一个,对吧?否则我会建议通过意图打开YouTube应用程序,因为几乎所有设备都默认安装了YouTube。 - Mathias Conradt
我使用YouTube API从播放列表中获取动态剪辑列表。我在这里找到了一篇帖子,提到使用webview.setPluginsEnabled(true)打开插件。 - Simon Hume
是的,无论如何您都需要启用这个,但是如果没有插件,即使有了这个标记也不能太有帮助。 - Mathias Conradt
我觉得我不得不改用Java来编写它!http://www.javacodegeeks.com/2010/05/getting-started-with-youtube-java-api.html - Simon Hume

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,