我在 WebView 中运行 HTML5 Youtube嵌入式 时遇到问题。 我想在我的应用程序上播放Youtube视频。我决定使用WebView而不是VideoView,因为我想让我的系统更灵活地从网上播放视频。
虽然有很多方法可以在Android上玩youtube,但我会使用youtube嵌入式版本。 “http://www.youtube.com/embed/___________________”。因为这是我在你的android不支持flash时找到的解决方案之一。
问题:
WebView加载正常,包括嵌入的Youtube。但是我开始在youtube上看到黑屏。
当我点击它时。它仅加载第一个图像,但之后它不播放。我尝试在Android浏览器上播放,它运行顺畅但不在webView中。
知道为什么吗?
以下只是我的代码片段:
WebView wv = new WebView(getApplicationContext());
wv.getSettings().setPluginState(PluginState.ON);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html");
setContentView(wv);
以下是我发现非常有用的一些资源:
How can we play YouTube embeded code in an Android application using webview?
http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html
http://www.broken-links.com/2009/10/06/building-html5-video-controls-with-javascript/
提前感谢您提供任何支持和帮助:)
更新(2011年6月13日):
我在WebView中成功加载http://m.youtube.com,但无法播放任何视频。但是当我尝试在我的Android浏览器上加载URL时,它可以播放。
从这里开始,我注意到我的WebView上的youtube网站没有登录。那么我们如何才能让WebView在我的手机中使用与我的Youtube帐户相同的凭据?它真的有效吗?
答案 0 :(得分:6)
第1步:只需将其添加到清单文件
即可 android:hardwareAccelerated="true"
第2步:检查您是否为webview设置了图层。
(即)
//myWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
将硬件加速设置为true并对这些行进行评论对我有用。
要了解有关硬件加速和图层的更多信息,请参阅http://developer.android.com/guide/topics/graphics/hardware-accel.html
答案 1 :(得分:5)
修改的
因此,我们从评论对话中扣除了:
在这个网站上:www.youtube.com/html5它说你必须登录然后选择加入HTML5视频播放
这就是为什么您的视频无法加载,重定向到Flash版本而您的网页视图没有闪存。
ORIGINAL
您是否覆盖网址加载以便正在使用您的网络视图?
wv.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
您是说视频无法播放但是网站加载了吗?
你可以尝试撒谎到YouTube并告诉他们你的另一个浏览器(可能假装是android浏览器)Firefox是:
wv.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.36 (KHTML, like Gecko) Chrome/13.0.766.0 Safari/534.36");
答案 2 :(得分:0)
如何在Android WebView中启用HTML5没有详细记录。您可能想尝试我的HTML5WebView和我的旧slides