我正在构建一个简单的Webview应用程序,该应用程序正在使用
HTML5视频播放器显示一个填充有短视频剪辑的网站.一切都运行在默认的
Android网络浏览器,但webview不会播放任何视频剪辑.
用于播放视频剪辑的HTML代码如下:
<video poster preload="true" controls autoplay width="500" height="200"> <source src="http://www.edmondvarga.com/demo/videos/video.mp4" type="video/mp4"> </video>
主要Activity.java:
package tscolari.mobile_sample; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class InfoSpotActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); WebView mainWebView = (WebView) findViewById(R.id.mainWebView); WebSettings webSettings = mainWebView.getSettings(); webSettings.setJavaScriptEnabled(true); mainWebView.setWebViewClient(new MyCustomWebViewClient()); mainWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); mainWebView.loadUrl("http://server.info-spot.net"); } private class MyCustomWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view,String url) { view.loadUrl(url); return true; } } }
如何在webview中启用视频播放?
解决方法
我从上一个项目中了解到,您需要使用WebChromeClient来播放HTML5视频. (这也给你硬件加速支持 – 提供你也设置你的活动的标志).
使用:
mainWebView.setWebChromeClient(new WebChromeClient());
在设置setWebViewClient之前.您可以覆盖WebChromeClient来拦截您需要处理的任何事件.
在您的活动定义中的AndroidManifest.xml中,添加:
android:hardwareAccelerated="true"
以下引用来自此SDK Page(向下滚动到HTML5视频支持)
In order to support inline HTML5 video in your application,you need to have hardware acceleration turned on,and set a WebChromeClient.