2011-06-12 245 views
25

我有一个的WebView嵌入式运行HTML5的Youtube的一个问题。 我想打一个YouTube视频上我的应用程序。我决定使用的WebView而不是VideoView,因为我想让我的系统更加灵活,从网页播放视频。播放YouTube HTML5的嵌入式视频在Android的WebView中

虽然有很多方法可以对Android播放YouTube,但我会用YouTube嵌入式版本。 “http://www.youtube.com/embed/___________________”。因为这是我的Android不支持Flash的解决方案之一。

问题:

web视图负载正常包括嵌入的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); 

这里有一些我觉得非常有用的资源:

预先感谢您的任何支持和帮助:)


更新(2011年6月13日):

我成功地在WebView中加载了http://m.youtube.com,但无法播放任何视频。但是当我试图在我的Android浏览器上加载URL时,它可以播放。

从这里,我注意到我的WebView中的YouTube网站未登录。那么,我们如何让WebView使用与我的手机中的Youtube帐户相同的凭据?它会真的起作用吗?

+1

我的答案在这里:http://stackoverflow.com/a/16179544/423171 – cprcrack 2013-07-15 14:21:24

+0

你也可以尝试在YouTube播放器API,如果你需要一个本地外观和感觉http://www.gadgetsaint.com/android/play-youtube-android-youtube-player-api/ – ASP 2017-04-07 13:42:20

回答

5

编辑

所以在征求意见的谈话,我们扣除:

在这个网站上:www.youtube.com/html5它说你必须登录,然后选择在HTML5视频播放

这就是为什么你的视频无法加载,它重定向到Flash版本,你的webview没有闪光灯。

ORIGINAL

你重写URL负载所以你的WebView正在使用?

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"); 
+0

我没有覆盖URL加载,并根据您提供的代码我尝试过但不影响输出。 是的,视频不会播放,但网站加载正常..我试图说谎Youtube基于您的代码,但他们要求Flash Player .. – Yeo 2011-06-12 17:23:33

+0

这不是为什么它不加载呢?设备上没有闪光灯?你有没有尝试setPluginState(PluginState.On_DEMAND); ,也许它会要求闪光灯并解释你的设备没有 – Blundell 2011-06-12 17:51:22

+0

是的,这是真的,但我故意不想在我的设备上有闪光灯。因为我想让它在HTML5下播放。原因是因为很多使用Android的客户没有Flash功能。所以我正在尝试开发YouTube而不是Flash。 – Yeo 2011-06-12 18:04:28

0

如何在Android的WebView中启用HTML5并不充分证明。你可能想试试我的HTML5WebView和我的老slides

+1

代表[R Earle Harris](http://stackoverflow.com/users/1973263/r-earle-harris):请注意,此示例项目需要Android版本11或更高版本。 – 2013-04-07 19:19:02

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

+0

以上解决方案为我工作 – Subha 2016-02-16 05:09:44

+0

为我工作,也webview是超级laggy没有硬件加速。 – craigrs84 2016-11-10 19:44:53

相关问题