我正在构建一个简单的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>
Run Code Online (Sandbox Code Playgroud)
主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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何在webview中启用视频播放?
pet*_*ept 24
我从之前的项目中了解到,您需要使用它WebChromeClient来播放HTML5视频.(这也为您提供硬件加速支持 - 您还可以在活动中设置标记).
使用:
mainWebView.setWebChromeClient(new WebChromeClient());
Run Code Online (Sandbox Code Playgroud)
在设置setWebViewClient之前放置它.您可以覆盖WebChromeClient以拦截您需要处理的任何事件.
在活动定义中的AndroidManifest.xml中,添加:
android:hardwareAccelerated="true"
Run Code Online (Sandbox Code Playgroud)
以下引用来自此SDK页面(向下滚动到HTML5视频支持)
要在应用程序中支持内联HTML5视频,您需要打开硬件加速,并设置WebChromeClient.