在Android WebView中播放Youtube HTML5embedded式video
我在运行embedded在WebView中的HTML5 Youtube时遇到问题。 我想在我的应用程序上播放Youtubevideo。 我决定使用WebView而不是VideoView,因为我想让我的系统更加灵活地从networking上播放video。
虽然有很多方法可以在android上播放youtube,但是我会使用youtube的embedded式版本。 “ http://www.youtube.com/embed/___________________ ”。 因为这是我的Android不支持Flash的解决scheme之一。
问题:
WebView加载正常,包括embedded的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);
以下是我发现非常有用的一些资源:
-
我们如何使用webview在Android应用程序中播放YouTubeembedded代码?
-
在WebView中播放YouTubevideo
-
如何在Android上的WebView中embeddedYouTube剪辑
-
http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html
-
-
预先感谢您的任何支持和帮助:)
更新(2011年6月13日):
我成功地在WebView中加载了http://m.youtube.com ,但无法播放任何video。 但是当我试图加载我的Android浏览器的URL,它可以发挥。
从这里,我注意到我的WebView中的YouTube网站没有login。那么我们如何让WebView使用与我的手机中的Youtube帐户相同的凭据呢? 它实际上会起作用吗?
第1步 :只需将其添加到清单文件
android:hardwareAccelerated="true"
第2步 :检查你是否为你的webview设置图层。
(ie) //myWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
( //myWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
将硬件加速设置为true,并评论这些行为我工作。
要了解更多关于硬件加速和图层,请看http://developer.android.com/guide/topics/graphics/hardware-accel.html
编辑
所以从评论对话我们已经扣除:
在这个网站上:www.youtube.com/html5它说,你必须login,然后selectHTML5video播放
这就是为什么你的video不会加载,它redirect到Flash版本,你的webview没有闪光灯。
原版的
你是否覆盖url加载,所以你的webview被使用?
wv.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return false; } });
你是说video不会播放,但网站加载?
你可以尝试对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");
如何在Android WebView中启用HTML5没有很好的logging。 你可能想试试我的HTML5WebView和我的旧幻灯片
- Android Studio将R标记为红色,并显示错误消息“无法parsing符号R”,但构build成功
- 错误消息“java.net.SocketException:套接字失败:EACCES(权限被拒绝)”
- 应用内结算testing:android.test.purchased已经拥有
- Android上的“上下文”是什么?
- 在使用v7兼容性支持主题时,IDE“无法parsing@ style / Theme.Appcompat”
- 如何在真实设备上进行debugging(使用Eclipse / ADT)
- 如何以编程方式围绕angular落并设置随机背景颜色
- 如何在Android设备上安装可信CA证书?
- Android – 设置一个AsyncTask的超时?